每当我使用sys.path。追加,新目录将被添加。然而,一旦我关闭python,列表将恢复到以前的(默认?)值。如何将目录永久添加到PYTHONPATH?


当前回答

在多次撞击墙壁后。最终解决的问题是,在我的CentOS 8中,pip3是旧的,它在安装最新的软件包时显示错误。

现在,我已经下载了Python源包,它是Python-3.10.4,并以通常的方式安装,但是安装后检查在bash中产生了错误。

我不能删除现有的Python,因为这会破坏CentOS的桌面功能。

解决方案:

为构建

./configure //不要添加——prefix=/usr,你需要适当地设置 使-j8 Sudo make install

现在,由于您安装了多个Python,您可以设置别名Python =python3

以及设置PYTHONPATH

export PYTHONPATH="/usr/local/bin/python3.10:/usr/local/lib/python3.10/lib-dynload:/usr/local/lib/python3.10/site-packages"

不要添加PYTHONHOME

其他回答

如果有人仍然感到困惑,如果你在Mac上,请执行以下操作:

打开终端 输入open .bash_profile 在弹出的文本文件中,在最后添加这行: 出口到PYTHONPATH = $ PYTHONPATH: foo / bar 保存文件,重新启动终端,就完成了

将export PYTHONPATH="${PYTHONPATH}:/my/other/path"添加到~/。如果PYTHONPATH当前不存在(因为:),bashrc可能无法工作。

export PYTHONPATH="/my/other/path1"
export PYTHONPATH="${PYTHONPATH}:/my/other/path2"

将以上内容添加到我的~/。bashrc在Ubuntu 16.04上为我完成了这个任务

在多次撞击墙壁后。最终解决的问题是,在我的CentOS 8中,pip3是旧的,它在安装最新的软件包时显示错误。

现在,我已经下载了Python源包,它是Python-3.10.4,并以通常的方式安装,但是安装后检查在bash中产生了错误。

我不能删除现有的Python,因为这会破坏CentOS的桌面功能。

解决方案:

为构建

./configure //不要添加——prefix=/usr,你需要适当地设置 使-j8 Sudo make install

现在,由于您安装了多个Python,您可以设置别名Python =python3

以及设置PYTHONPATH

export PYTHONPATH="/usr/local/bin/python3.10:/usr/local/lib/python3.10/lib-dynload:/usr/local/lib/python3.10/site-packages"

不要添加PYTHONHOME

受到andrei-deusteanu答案的启发,以下是我的版本。这允许您在site-packages目录中创建许多额外的路径。

import os

# Add paths here.  Then Run this block of code once and restart kernel. Paths should now be set.
paths_of_directories_to_add = [r'C:\GIT\project1', r'C:\GIT\project2', r'C:\GIT\project3']

# Find your site-packages directory
pathSitePckgs = os.path.join(os.path.dirname(os.__file__), 'site-packages')

# Write a .pth file in your site-packages directory
pthFile = os.path.join(pathSitePckgs,'current_machine_paths.pth')
with open(pthFile,'w') as pth_file:
    pth_file.write('\n'.join(paths_of_directories_to_add))

print(pthFile)

修复从bash切换到zsh时Python路径问题

当我从bash切换到zsh时,我遇到了Python路径问题。

解决办法很简单,但我没有注意到。

Pip告诉我,脚本blah blah或包blah blah安装在~/。不在路径中的本地/bin。

在阅读了这个问题的一些解决方案后,我打开我的.zshrc,发现解决方案已经存在。

我不得不取消注释一行:

看一看