在哪里手动安装Python文件
我在一个比较大的项目中遇到了关于setuptools的问题,这个项目需要从几个debian包中“构建”一个python包(每个debian包里都有“主”包的一个子包)。所以我们决定手动安装这些文件,而不是用“setup.py install”,但我们不太确定该用哪个位置。我们最开始用了一个在/usr/share下的目录,这个目录我们之前也用来安装其他东西。这样做没问题,但在启动任何应用程序之前,我们得先调整一下PYTHONPATH。
有没有什么地方是默认的sys.path里可以用来安装包的呢?我在想/usr/lib/python2.6/dist-packages(这个地方用setuptools时文件应该也会放在这里吧?),但我有点不太想用自定义安装脚本去写这个地方……而且,如果Ubuntu换成2.7版本,我们是不是也得跟着移动?有没有什么“最佳实践”可以参考一下?这个site-packages/dist-packages的概念真的是文档太少了 :(
1 个回答
2
其实,决定把你的Python包安装在哪里有点复杂,因为你可以选择任何地方。个人觉得,最好的地方是把它们放在/usr/local/share/YOURPACKAGENAME,如果不是通过apt-get(或者类似的工具)安装的话。无论你选择哪个地方,你都需要在你的Python脚本周围创建一个小的包装器,这样可以把你的包所在的路径添加到"sys.path"这个变量里。比如,Ubuntu的"yum"默认把文件放在"/usr/share/yum-cli",而"/usr/bin/yum"这个脚本里包含了以下几行:
#!/usr/bin/python
...
sys.path.insert(0, '/usr/share/yum-cli')
try:
import yummain
yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt, e:
...
另外,你也可以设置PYTHONPATH这个环境变量,这样做也没问题。