Mat*_* B. 18 python pythonpath
我想将一些软件包安装到第三方site-packages目录中(超出标准系统位置).有没有办法设置它,以便其中的.pth文件得到尊重?
背景:我正在使用OS X,virtualenv和自制软件.有一些软件包(特别是我的wxPython)不能通过pip很好地安装到virtualenv中.在这些情况下,有自制软件包可以替代它们.Homebrew在中创建了第三个site-packages文件夹/usr/local/lib/python2.7.我想简单地指向这个文件夹,并将所有项目的维护保留在brew控制之下.但是,似乎这是不可能的.
$PYTHONPATH不会加载.pth文件.(OS X上的Python 2.6应该在$ PYTHONPATH中处理多个easy-install.pth文件吗?)add2virtualenv.pth文件添加了一些额外的智能,只是简单地列出了目录,但我相信它只是重新排序路径列表.我当然不是唯一对这个问题感兴趣的人.我打赌大量的通用"pth文件无法正常工作"的问题和在线发帖,我偶然发现与这个问题有关.有一个很好的解决方案吗?
And*_*ark 18
看看网站模块.它提供了addsitedir应该做你想要的功能.
用最简单的方法是创建一个文件名为sitecustomize.py或usercustomize.py并将其放置在当前PYTHONPATH目录(或者在结束了任何目录sys.path)包含以下内容:
import site
site.addsitedir('/usr/local/lib/python2.7')
Run Code Online (Sandbox Code Playgroud)
当Python开始时,尝试导入sitecustomize然后usercustomize,这就是为什么这样做的原因.从网站文档:
在这些路径操作之后,尝试导入名为的模块
sitecustomize,该模块可以执行任意特定于站点的自定义.它通常由site-packages目录中的系统管理员创建.如果此导入失败并出现ImportError异常,则会以静默方式忽略该导入.在此之后,尝试导入名为的模块
usercustomize,如果ENABLE_USER_SITE为true ,则可以执行任意特定于用户的自定义.此文件旨在在用户site-packages目录中创建(见下文),sys.path除非被禁用,否则该目录是其中一部分-s.一个ImportError将被忽略.
| 归档时间: |
|
| 查看次数: |
5247 次 |
| 最近记录: |