Permanently remove something from python sys.path
利用Mac OSX 10.8.5和Python 2.7.8。 Python是使用MacPorts安装的,我已经确认MacPorts安装目前是我正在使用的。我在将某些软件包导入到我的MacPorts安装时遇到问题,特别是当其中一个已安装的软件包与System Python使用的旧版本冲突时。作为一个例子,我已经验证了sys.path中的System安装包导致导入当前版本的Numpy时出现问题。
1 2 3 4 5 6 7 8 9 10 11 | python >>> import numpy >>> numpy.__version__ '1.6.1' #Bad Version python >>> import sys >>> sys.path.remove('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python') >>> import numpy >>> numpy.__version__ '1.9.0' #Good Version |
问题是'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python'从未通过常规方式显式添加到$ PYTHONPATH或$ PATH,所以我不知道它是如何被添加到sys.path中。我想永久阻止从这条路径导入东西。
我已经尝试过的:
我在这里的答案中读到了关于site.py的内容什么用Python设置sys.path,什么时候?但是,当我在问题中尝试解决方案时,它们不起作用。我尝试手动编辑site.py并将语句
错误的路径来自我的计算机操作系统使用的目录,因此删除/ System / Library下的numpy路径不是一个选项。有什么方法可以解决我的问题,保持'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python'下的文件自动添加到sys.path吗?
事实证明,damirv提出的解决方案是什么用Python设置sys.path,何时? 实际上确实有效。 我在第一次尝试时错误地实施了他的建议。 必须找到工作python版本正在使用的正确site.py并将
早些时候在尝试这个解决方案时,我错误地将代码行添加到系统安装的Python中/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/site.py,这显然没有解决我的问题。 启动MacPorts安装版本时导入。