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


当前回答

在MacOS上,而不是给出特定库的路径。给出根项目文件夹的完整路径

~/.bash_profile 

让我很开心,例如:

export PYTHONPATH="${PYTHONPATH}:/Users/<myuser>/project_root_folder_path"

这样做之后:

source ~/.bash_profile

其他回答

这适用于Windows

在Windows上,使用Python 2.7进入Python安装文件夹。 开放的Lib /网站。 将example.pth空文件添加到此文件夹。 将所需的路径添加到文件中,每行一个。

然后,您将能够从脚本中看到这些路径中的所有模块。

您可以通过pythonrc文件添加路径,该文件默认为~/。linux上的Pythonrc。ie。

import sys
sys.path.append('/path/to/dir')

您还可以在全局rc文件中设置PYTHONPATH环境变量,例如~/。mac或linux上的配置文件,或通过控制面板->系统->高级选项卡-> windows上的环境变量。

我找到了一个解决方案,在水蟒环境中做到这一点:https://datacomy.com/python/anaconda/add_folder_to_path/

只是:

Conda develop /your_path

在多次撞击墙壁后。最终解决的问题是,在我的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)