擅长:python、mysql、java
<p>pip的工作原理如下(请随时纠正我)。在</p>
<ul>
<li>每个文件都被下载并解包。在</li>
<li>每个文件都被生成<code>python setup.py build</code></li>
<li>每个文件都已安装<code>python setup.py install</code></li>
</ul>
<p>问题是某些模块中的<code>setup.py</code>文件要求在构建或安装步骤中存在相关模块,如果numpy/scipy/等在<code>requirements.txt</code>中,这是不可能的。在</p>
<p>matplotlib存在一个<a href="https://github.com/pypa/pip/issues/720" rel="nofollow">similar issue</a>,pip社区的情绪是“这不是pip”。很公平。在</p>
<p>在我看来,最好的解决方法就是编写一个包装器。如果其他人知道更好的方法,请告诉我:)</p>
<pre><code>#!/usr/bin/bash
INSTALL_DIR=$IMPORT/../Environment/Py26/env/sqrt_python26
## Step 1: build the virtualenv
virtualenv $INSTALL_DIR
## Now use the virtualenv
source $INSTALL_DIR/bin/activate
## Install numpy
pip install numpy==1.7.1
## Install scipy
pip install scipy==0.12.0
## Install pandas
pip install pandas==0.12.0
## Some others...
pip install patsy==0.2.1
pip install pycurl==7.19.0
## Now run requirements.txt
pip install -r ./requirements.txt
## finished, shut down virtualenv
deactivate
</code></pre>