我正在为Raspberry Pi 3开发一个项目。我的项目需要的一件事是cython。
pip install cython
由于cython显然需要首先编译,因此在virtualenv内的Raspberry Pi上运行大约需要40分钟。在这40分钟内,top
显示cc正在运行,尝试使用100%的一个内核来编译内容。
我每天需要多次执行此操作,因为我一直需要将SD卡重置为Raspbian的新映像。这显然非常耗时,并且减慢了进度。
当pip完成cython编译时,二进制文件存储在哪里?在virtualenv里面?文件系统上的其他地方?
如果它们存储在virtualenv中,我可以存档整个virtualenv文件夹,然后将其还原到新的Linux中,并期望它能正常工作吗?我知道virtualenvs不应该是可移植的(不使用--relocatable
arg,这似乎有其自身的问题),但是就我而言,virtualenv的路径在还原时将保持不变。
只需从缓存目录复制wheel文件。当pip install pkgname
发出并pip
没有找到兼容的车轮,从安装,它建立一个从源头DIST并将其存储在缓存中重用为将来重新安装。要找到轮子文件,请发出
$ find $HOME/.cache/pip -type f -name Cython*.whl
备份文件;从本地文件安装,只需发出
$ pip install path/to/file.whl
当您收集了很多预制轮毂时,下一步就是设置本地PyPI存储库以进行安装。最简单的方法是将轮子组织到以包命名的目录中,并运行一个简单的HTTP服务器:
└── repodir
├── Cython
│ └── Cython-0.28.0-cp36-cp36m-linux_aarch64.whl
...
用例如启动服务器
$ python3 -m http.server -p 9000
现在,您可以将存储库传递给pip
:
$ pip install Cython --extra-index-url=http://127.0.0.1:9000
甚至将repo URL保留在中pip.conf
,以免每次都不输入它:
# pip.conf
[global]
extra-index-url=http://127.0.0.1:9000
如果您需要更多,则有很多精美的PyPI回购服务器,例如devpi
它们提供了通用的软件包管理,Web UI等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句