Mid*_*ter 15 python pip virtualenv scipy python-wheel
我认为它没有区别,但我使用的是Python 2.7.
所以我的问题的一般部分如下:我virtualenv为每个项目使用一个单独的.我没有管理员权限,我也不想乱用系统安装的软件包.当然,我想使用轮子加速整个包的升级和安装virtualenv.如何构建一个仅在特定范围内满足依赖性的轮子virtualenv?
具体来说,发行
pip wheel -w $WHEELHOUSE scipy
Run Code Online (Sandbox Code Playgroud)
失败了
Building wheels for collected packages: scipy
Running setup.py bdist_wheel for scipy
Destination directory: /home/moritz/.pip/wheelhouse
Complete output from command /home/moritz/.virtualenvs/base/bin/python -c "import setuptools;__file__='/home/moritz/.virtualenvs/base/build/scipy/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /home/moritz/.pip/wheelhouse:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/moritz/.virtualenvs/base/build/scipy/setup.py", line 237, in <module>
setup_package()
File "/home/moritz/.virtualenvs/base/build/scipy/setup.py", line 225, in setup_package
from numpy.distutils.core import setup
ImportError: No module named numpy.distutils.core
----------------------------------------
Failed building wheel for scipy
Failed to build scipy
Cleaning up...
Run Code Online (Sandbox Code Playgroud)
因为numpy不存在全局和在构建轮,当工作virtualenv与numpy安装的是积极的,这似乎是一个可怕的想法有车轮依赖于特定virtualenv的的版本numpy.
pandas这也取决于numpy似乎安装自己的组件,numpy但我不确定这是最好的解决方案.
我可以安装numpy使用--user,并用它来建立scipy轮.有更好的选择吗?
Jan*_*sky 15
scipy),它依赖于其他包(比如numpy),但setup.py没有声明需求/依赖.注意:理想的解决方案是setup.py通过添加必需的包声明来纠正损坏.但这基本上是不可行的,我们必须采取另一种方式.
程序(用于安装scipy需要numpy)有两个步骤
这必须只进行一次,然后可以多次重复使用.
已正确地配置PIP配置,以便从车轮该安装是允许的,操舵室目录被设置和使用重叠download-cache和find-links如在下面的例子pip.conf:
[global]
download-cache = /home/javl/.pip/cache
find-links = /home/javl/.pip/packages
[install]
use-wheel = yes
[wheel]
wheel-dir = /home/javl/.pip/packages
Run Code Online (Sandbox Code Playgroud)为所有必须编译的包安装所有必需的系统库
为所需的包构建一个轮子(numpy)
$ pip wheel numpy
Run Code Online (Sandbox Code Playgroud)设置virtualenv(只需要一次),激活它并安装在那里numpy:
$ pip install numpy
Run Code Online (Sandbox Code Playgroud)
当车轮准备就绪时,应该很快.
建立一个轮子scipy(仍然在virtualenv)
$ pip wheel scipy
Run Code Online (Sandbox Code Playgroud)
到现在为止,您的驾驶室将装满您需要的轮子.
您可以删除临时virtualenv,不再需要它.
我假设,你已经创建了新的virtualenv,激活它并希望scipy安装在那里.
直接scipy从新scipy车轮安装仍然会失败numpy.这是我们numpy首先安装克服的.
$ pip install numpy
Run Code Online (Sandbox Code Playgroud)
然后用scipy完成
$ pip install scipy
Run Code Online (Sandbox Code Playgroud)
我猜,这可以在一次通话中完成(但我没有测试)
$ pip install numpy scipy
Run Code Online (Sandbox Code Playgroud)
scipy经过验证的版本很可能,在未来的某个时刻,新版本scipy或numpy将要发布的版本和pip将尝试安装最新版本,而您的驾驶室中没有轮子.
如果你可以用到目前为止你已经使用了版本的生活,你必须创建requirements.txt陈述的版本,numpy和scipy你喜欢的,并从它安装.
这将确保在真正使用之前存在所需的包装.
| 归档时间: |
|
| 查看次数: |
74162 次 |
| 最近记录: |