Ner*_*ero 5 python macos bash pythonpath python-2.7
我一直在尝试添加自定义目录以PYTHONPATH
遵循此帖子上的建议永久性地将目录添加到PYTHONPATH.我在Mac上使用bash,如果那是相关的.这就是我做的:
open ~/.bash_profile
export PYTHONPATH="${PYTHONPATH}:/Users/Zhengnan/Library/Python/2.7/lib/python/site-packages"
并保存 source ~/.bash_profile
有两个问题:
sys.path
在Python IDE中运行时,预期的目录仍然没有出现.sys.path
那里运行时,dir确实出现了,但所有其他目录与我从上一步得到的不匹配.具体来说,这就是我sys.path
在IDE中运行所得到的.无法找到预定的目录.
sys.path ['','/ Applications/Spyder-Py2.app/Constate/Reses','/ Applications/Spyder -Py2.app/Constate/Resess/lib/python27.zip','/ Applications/Spyder-Py2 .app/Contents/Resources/lib/python2.7','/ Applications/Spyder-Py2.app/Constate/Resess/lib/python2.7/plan -darwin','/ Applications/Spyder-Py2.app/Contents /Resources/lib/python2.7/plat-mac','/ Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/plat-mac/lib-scriptpackages','/ Applications/Spyder-Py2 .app/Contents/Resources/lib/python2.7/lib-tk','/ Applications/Spyder-Py2.app/Constate/Resess/lib/python2.7/lib-old','/ Applications/Spyder-Py2 .app/Contents/Resources/lib/python2.7/lib-dynload','/ Applications/Spyder-Py2.app/Constate/Resess/lib/python2.7/site-package.zip','/ Applications/Spyder -Py2.app/Contents/Resources/lib/python2.7/site-packages','/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/IPython/extensions','/ Users/Zhengnan /.ipython']
这就是我sys.path
从终端运行时得到的.预期的目录是列表中的第三个元素.
sys.path ['','/ Users/Zhengnan','/ Users/Zhengnan/Library /Python/2.7/lib/python/site-package','/ System/Library/Frame /Python.framework/Version/2.7 /lib/python27.zip','/ System/Library/Frameworks/Python.framework/Version/1.7/lib/python2.7','/ System/Library/Frame /Python.framework/Version/2.7/lib/python2 .7/plat-darwin','/ System/Library/Frame /Python.framework/Version/7.7/lib/python2.7/plat-mac','/ System/Library/Frame /Python.framework/Version/2.7 /lib/python2.7/plat-mac/lib-scriptpackages','/ System/Library/Frame /Python.framework/Version/7.7/Extras/lib/python','/ System/Library/Frame /Python.framework /Versions/2.7/lib/python2.7/lib-tk','/ System/Library/Frame /Python.framework/Version/7.7/lib/python2.7/lib-old','/ System/Library/Frameworks /Python.framework/Versions/2.7/lib/python2.7/lib-dynload','/ System/Library/Frame /Python.framework/Version/7.7/Extras/lib/python/PyybjC']
我应该提一下,我想添加这个自定义目录的原因PYTHONPATH
是,每次我pip install
一个包,它都被安装/Users/Zhengnan/Library/Python/2.7/lib/python/site-packages
,我不想sys.path.append
每次运行脚本.请指教.谢谢.
这里发生了很多事情。
从根本上来说,您在 IDE 中使用的 Python 不是您在终端中使用的 Python。这就是为什么pip install
没有把东西放在正确的地方。
最简单的解决方案就是修改$PATH
环境变量,这样当您python
在终端中键入时,您将获得与 IDE 正在使用的版本相同的版本。我的猜测是你的 IDEpython
类似于/Applications/Spyder-Py2.app/Contents/Resources/bin/python
,在这种情况下你将删除你的PYTHONPATH
设置.bash_profile
并添加:
export PATH="/Applications/Spyder-Py2.app/Contents/Resources/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
假设pip
在同一个地方可以使用它,那么您现在应该能够做到pip install
这一点,而无需考虑PYTHONPATH
.
这里的另一个问题是,在 shell 中设置的环境变量(例如,在您的 中.bash_profile
)对应用程序可见的环境没有影响。可以设置对 OS X 应用程序可见的环境变量(例如,请参阅此问题),但这很棘手,我不建议这样做。
另一种解决方案(如果可用)只是告诉您的 IDEpython
应该使用哪个,并将其指向从终端可见的任何一个。
归档时间: |
|
查看次数: |
1008 次 |
最近记录: |