每当我使用sys.path。追加,新目录将被添加。然而,一旦我关闭python,列表将恢复到以前的(默认?)值。如何将目录永久添加到PYTHONPATH?
当前回答
下面的脚本可以在所有平台上运行,因为它是纯Python。它使用了pathlib路径(请参阅https://docs.python.org/3/library/pathlib.html),使其能够跨平台工作。运行一次,重新启动内核,就完成了。灵感来自https://medium.com/@arnaud.bertrand/ modiing-python-s - sear-path-with-pth -files-2a41a4143574。为了运行它,它需要管理员权限,因为你修改了一些系统文件。
from pathlib import Path
to_add=Path(path_of_directory_to_add)
from sys import path
if str(to_add) not in path:
minLen=999999
for index,directory in enumerate(path):
if 'site-packages' in directory and len(directory)<=minLen:
minLen=len(directory)
stpi=index
pathSitePckgs=Path(path[stpi])
with open(str(pathSitePckgs/'current_machine_paths.pth'),'w') as pth_file:
pth_file.write(str(to_add))
其他回答
这是对这个线程的更新,它有一些旧的答案。
对于那些使用MAC-OS Catalina或更新版本(>= 10.15)的用户,它引入了一个名为zsh的新终端(旧bash的替代品)。
由于这个更改,我在上面的回答中遇到了一些问题,我通过创建文件~/来解决一些问题。并将文件目录粘贴到$PATH和$PYTHONPATH
所以,首先我做了:
nano ~/.zshrc
当编辑器打开时,我粘贴以下内容:
export PATH="${PATH}:/Users/caio.hc.oliveira/Library/Python/3.7/bin"
export PYTHONPATH="${PYTHONPATH}:/Users/caio.hc.oliveira/Library/Python/3.7/bin"
保存,并重新启动终端。
重要提示:上面的路径设置为我的计算机的路径,你必须适应你的python。
在linux上,您可以创建从包到PYTHONPATH目录的符号链接,而不必处理环境变量。喜欢的东西:
ln -s /your/path /usr/lib/pymodules/python2.7/
为了添加awesomo的答案,你也可以在~/中添加这一行。Bash_profile或~/.profile
A <-> B之间的最短路径是一条直线;
import sys
if not 'NEW_PATH' in sys.path:
sys.path += ['NEW_PATH']
修复从bash切换到zsh时Python路径问题
当我从bash切换到zsh时,我遇到了Python路径问题。
解决办法很简单,但我没有注意到。
Pip告诉我,脚本blah blah或包blah blah安装在~/。不在路径中的本地/bin。
在阅读了这个问题的一些解决方案后,我打开我的.zshrc,发现解决方案已经存在。
我不得不取消注释一行:
看一看