如何手动安装Python库
我为我的一个任务搭建了quickfix引擎(http://www.quickfixengine.org/),并且还为它添加了Python支持。
不幸的是,我在一个多用户的环境中,无法访问Python的安装路径。因此,当我运行make install命令时,它试图复制文件,但失败了。我设法注释掉了两行代码,这样make install就完成了。既然我不能把文件放在那里,那我可以把生成的.so文件放在哪里呢?
我该怎么让Python知道这个文件在那儿呢?我查看了python.org的文档,但它只描述了setup.py安装的过程。
我还尝试把.so文件的路径放到sys.path
中,但没有成功。有没有关于Python包结构的文档呢?谢谢。
2 个回答
这里是关于安装Python模块的官方常见问题解答:http://docs.python.org/install/index.html
这里有一些可能对你有帮助的小建议。
我假设编译QuickFix包的时候不会生成一个setup.py
文件,而是只编译Python的绑定部分,并依赖make install
来把它们放到合适的位置。
在这种情况下,一个快速且简单的解决办法是编译QuickFix的源代码,找到Python扩展模块(你提到在你的系统中这些文件以.so
结尾),然后把这个目录添加到你的PYTHONPATH
环境变量中,比如添加
export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH
或者在你的shell配置文件中加类似的行。
一个更稳妥的解决方案是确保在编译时使用./configure --prefix=$HOME/.local
。假设QuickFix知道把Python文件放到合适的site-packages
目录下,当你执行make install
时,它应该会把文件安装到~/.local/lib/pythonX.Y/site-packages
,对于Python 2.6及以上版本,这个目录应该已经在你的Python路径中,因为这是每个用户的site-packages目录。
另一方面,如果它确实提供了一个setup.py
文件,那就直接运行
python setup.py install --user
对于Python 2.6及以上版本。