pip安装的模块和备用路径

时间:2017-08-08 18:27:40

标签: python pip

由于各种原因,我需要在默认位置之外的某处安装python模块。 pip install --prefix似乎是正确的,但我遇到了问题:

$ pip install --prefix /tmp/foo protobuf-3.2.0-cp27-cp27mu-manylinux1_x86_64.whl
$ export PYTHONPATH=/tmp/foo/lib64/python2.7/site-packages
$ python
Python 2.7.5 (default, Nov  6 2016, 00:28:07) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import google.protobuf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named google.protobuf
>>> import sys
>>> sys.path.append('/tmp/foo/lib64/python2.7/site-packages')
>>> sys.path
['', '/tmp/foo/lib64/python2.7/site-packages', '/usr/lib64/python27.zip', 
'/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', 
'/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', 
'/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', 
'/usr/lib/python2.7/site-packages', '/tmp/foo/lib64/python2.7/site-packages']
>>> import google.protobuf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named google.protobuf

但是如果我将它安装在默认位置(我在生产中无法做到):

$ sudo pip install protobuf-3.2.0-cp27-cp27mu-manylinux1_x86_64.whl
$ python
Python 2.7.5 (default, Nov  6 2016, 00:28:07) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import google.protobuf
>>> google.protobuf.__version__
'3.2.0'

我认为我对pip命令的调用是错误的,或者在运行时需要做一些事情才能获得该模块。任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

使用:

alertController.view.accessibilityViewIsModal = true

pip install --ignore-installed --install-option="--prefix=$PREFIX_PATH" package_name 是强制使用此新前缀重新安装所有依赖项。这看起来是你遇到的问题。您可以多次使用--ignore-installed添加可以与--install-option的python setup.py一起使用的任何选项。

我不确定你为什么要这条道路不同。您应该初始化虚拟环境以使您的模块项目保持特定而不是废话。但是,如果您的用例需要这些废话,请执行以上操作。

答案 1 :(得分:1)

最适合您的解决方案是使用“virtualenv”。您可以安装必需的软件包,其范围仅限于虚拟环境。此外,它将忽略主存储库中已存在的所有先前安装的软件包。要快速入门,请点击以下链接:http://docs.python-guide.org/en/latest/dev/virtualenvs/

相关问题