防止python加载pth文件
我的情况如下:防止python加载pth文件,python,python-2.7,sys.path,Python,Python 2.7,Sys.path,我的情况如下: 我有一个本地安装的python版本。还有一个全局的,安装不好,我不想使用。(我没有管理权限) 在/usr/local/lib/site软件包上有一个x.pth文件,其中包含错误安装numpy的路径 我的蟒蛇路径没有这些路径。但是,一些管理员生成的脚本将/usr/local和/usr/local/bin添加到我的路径中(这是一个假设,不是已知的事实) 这以某种方式导致错误的numpy路径添加到mysys.path。当我运行python-S时,它不在那里 站点。前缀不包括/usr/
- 我有一个本地安装的python版本。还有一个全局的,安装不好,我不想使用。(我没有管理权限)
- 在
有一个/usr/local/lib/site软件包上
文件,其中包含错误安装numpy的路径x.pth
- 我的蟒蛇路径没有这些路径。但是,一些管理员生成的脚本将
和/usr/local
添加到我的路径中(这是一个假设,不是已知的事实)/usr/local/bin
- 这以某种方式导致错误的numpy路径添加到my
。当我运行sys.path
时,它不在那里李>python-S
站点。前缀不包括
。我不知道为什么要加载前面提到的pth文件/usr/local
- 我尝试将自己的pth文件添加到本地安装的site packages目录中,执行
此操作失败,因为加载该pth文件时,故障路径尚未在sys.path中import sys;sys.path.remove('pth/to/failure/numpy')
/usr/lib
和/usr/local/lib
中搜索pth文件
不过,您可以通过viartualenv创建独立的python。我终于设法解决了这个问题-我的站点软件包库有一个
easy\u install.pth
文件,由于某些原因,该文件包含错误的numpy,而不是/usr/local/lib/site packages
上的x.pth文件
在我花了大量的时间之后,如果有人来到这里,我将与大家分享我学到的一些东西:
- 如果您在本地安装了python,默认情况下它将不会在'/usr/local/lib'中搜索。如果您想知道它在哪里搜索,请运行:
python在这里搜索路径+import site print site.PREFIXES
。它被描述了lib/python2.X/site-packages
- 根据这些文档,您实际上可以使用sys.path。如果将
模块添加到本地sitepackages(usercustomize
),将运行该模块。然而,我花了很长时间才意识到这一点——它发生在python处理位于站点包中的import site;site.getusersitepackages()
文件之后,以及再次处理它们之前。如果我向执行此操作的方法(lib/site.py addsitedir)添加一条print语句,它将打印以下内容:pth
/home/user/.local/lib/python2.7/site-packages /home/user/py/lib/python2.7/site-packages #This is where your code runs /home/user/py/lib/python2.7/site-packages/numpy-1.9.0-py2.7-linux-x86_64.egg /home/user/Develop/Python/myproject /home/user/lmfit-0.7.2 /home/user/py/lib/python2.7/site-packages #NOTE: this runs a second time
- 一旦我有了一个在网站包中丢失的pth文件,我就无法用
来修复它,因为该pth文件有机会在以后再运行一次usercustomize