强制将现有模块安装在特定路径中

时间:2014-06-19 05:10:05

标签: python module

管理员已在/usr/lib64/...安装了一个模块

Python 2.7.6 (default, Nov 11 2013, 13:13:15) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> print matplotlib.__file__
/usr/lib64/python2.7/site-packages/matplotlib/__init__.pyc

我现在要做的是将它安装在:

/home/myname/.local/lib/python2.7/site-packages

但是当我尝试使用此命令安装它时:

$ easy_install-2.7 --install-dir=/home/myname/.local/lib/python2.7/site-packages matplotlib

我得到的是:

packages matplotlib 
Searching for matplotlib
Best match: matplotlib 1.3.1
Adding matplotlib 1.3.1 to easy-install.pth file

Using /usr/lib64/python2.7/site-packages
Processing dependencies for matplotlib
Finished processing dependencies for matplotlib

这意味着它根本没有安装。我再次使用此片段确认了这一点:

 >>> import matplotlib
 >>> print matplotlib.__file__

 or

 $ ls -lh /home/myname/.local/lib/python2.7/site-packages

如何将其安装在我想要的路径中并绕过已安装的版本。

1 个答案:

答案 0 :(得分:1)

您需要执行的操作(理想情况下)是virtualenv

  1. 下载virtualenv
  2. 提取virtualenv-<version>.tar.gz
  3. cd /path/to/virtualenv
  4. 运行:python virtualenv.py $HOME
  5. 然后你应该能够;

    pip install matplotlib
    

    which pip应该是:/home/<user>/bin/pip

    NB:您还需要确保$HOME中有$PATH

    export PATH="$HOME/bin:$PATH"
    wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.11.6.tar.gz#md5=f61cdd983d2c4e6aeabb70b1060d6f49^C
    tar zxvf virtualenv-1.11.6.tar.gz ^Cbash-4.2# cd virtualenv-1.11.6^C
    python virtualenv.py $HOME^C
    
    which pip  # should be $HOME/bin/pip
    
    pip install matplotlib
    

    另请注意:请勿以任何方式cusotmize PYTHONPATHvirtualenv负责所有细节。另外,您可能会发现virtualenvwrapper是一个有用的附加组件。