是否可以保存安装软件包时pip编译的二进制文件?

塔尔

我正在为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不应该是可移植的(不使用--relocatablearg,这似乎有其自身的问题),但是就我而言,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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

切换到其他Python二进制文件后,强制`pip`重新编译以前安装的软件包(numpy)

pip无法安装软件包,因为找不到swig2.0二进制文件

Python软件包安装脚本安装二进制可执行文件

通过货物安装周转箱时出错:指定的软件包没有二进制文件

尝试与货物一起安装软件包时出现“错误:指定的软件包没有二进制文件”?

如何列出其二进制文件安装在 $GOBIN 中的软件包?

Yocto openssl软件包未安装二进制文件

去安装不创建软件包的二进制文件,而去获得能够

安装Go二进制文件,保留依赖项/软件包

在“安装软件包”过程中创建少量二进制文件

构建它们后如何安装Swift软件包二进制文件?

如何找到从AUR软件包安装的二进制文件?

从yocto中的第三方软件包安装二进制文件

cygwin软件包二进制文件在安装后丢失

如何从已安装的二进制文件中获取Debian软件包

下载dropbox二进制文件时,dropbox-nautilus软件包的配置挂起

如何得知自己编译了哪些端口以及从预编译的二进制软件包安装了哪些端口?

yum是否可以从源代码进行编译而不是安装预编译的二进制文件?

码头工人:可以创建一个安装了二进制文件和软件包的文件吗?

为Linux创建可以安装在不同计算机上的R二进制软件包吗?

是否可以仅使用二进制文件来使FreeBSD系统保持最新(基本系统+软件包)?

为什么软件包的总安装大小通常是下载的二进制文件的大小?

Gentoo-如何从所有已安装的软件包制作二进制软件包

软件包“ RMySQL”可以作为源软件包使用,但不能作为二进制文件使用

如何从安装磁盘的ISO中提取Debian二进制软件包?

精确的CMAKE 3二进制软件包

如何编写一个包含多个二进制文件的软件包?

获取包含给定二进制文件的软件包名称

检查软件包及其测试,而无需创建二进制文件或运行测试