我为我的一个任务构建了quickfix引擎(http://www.quickfixengine.org/),并且还为它构建了python支持。
不幸的是,这是一个多用户环境,我无法访问python安装路径。因此,make install命令尝试复制文件并失败。我设法注释掉了两行,它试图这样做并完成make install。由于我无法将文件放在那里,我可以在哪里创建 .so 文件?
我怎么让python知道它在那里?我查看了python.org文档,但它只描述了 setup.py 安装的过程。
此外,我尝试将{em> .so 的路径放在sys.path
中,但这并不起作用。有没有关于python包解剖的文件?感谢。
答案 0 :(得分:17)
我将假设编译QuickFix包不会生成setup.py
文件,而只是编译Python绑定并依赖make install
将它们放在适当的位置。
在这种情况下,一个快速而又脏的修复方法是编译QuickFix源代码,找到Python扩展模块(您在系统上用.so
扩展名表示),然后将该目录添加到{{{ 1}}环境变量,例如,添加
PYTHONPATH
或shell配置文件中的类似行。
更强大的解决方案包括确保使用export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH
进行编译。假设QuickFix知道将Python文件放在适当的./configure --prefix=$HOME/.local
中,当你执行site-packages
时,它应该将文件安装到make install
,对于Python 2.6+,它应该已经在你的Python路径为per-user site-packages directory。
另一方面,如果确实提供了~/.local/lib/pythonX.Y/site-packages
文件,只需运行
setup.py
for Python 2.6 +。
答案 1 :(得分:3)
您需要将其安装在主文件夹的目录中,并以某种方式操纵PYTHONPATH以便包含该目录。
最好和最简单的是使用virtualenv。但这需要安装,导致捕获22. :)但检查是否安装了virtualenv。如果已安装,您可以这样做:
$ cd /tmp
$ virtualenv foo
$ cd foo
$ ./bin/python
然后您可以像往常一样运行安装,使用/ tmp / foo / python setup.py install。 (显然你需要在你的主目录中的一个文件夹中创建虚拟环境,而不是在/ tmp / foo .;)中)
如果没有virtualenv,您可以安装自己的本地Python。但这也许是不允许的。然后,您可以将软件包安装在软件包的本地目录中:
$ wget http://pypi.python.org/packages/source/s/six/six-1.0b1.tar.gz#md5=cbfcc64af1f27162a6a6b5510e262c9d
$ tar xvf six-1.0b1.tar.gz
$ cd six-1.0b1/
$ pythonX.X setup.py install --install-dir=/tmp/frotz
现在你需要将/tmp/frotz/pythonX.X/site-packages
添加到你的PYTHONPATH中,你应该启动并运行!
答案 2 :(得分:2)
以下是有关安装Python模块的官方常见问题解答:http://docs.python.org/install/index.html
有些提示可能会对您有所帮助。