2

首先,我这样做的理由 - 我知道这是一个坏主意,但我没有想法。

我想安装一个需要ld版本的软件包,该版本高于我的 Centos 6.5 的 repo 中的版本。所以我应该要么在 Docker 中设置所有东西,然后在生产环境中运行它——我缺乏经验,而且对于一个严肃的项目我感觉不舒服。或者从外部源升级ld手动构建。我读到的内容可能会导致我的 Centos 遭到破坏。所以我剩下的最后一个选项是在其他机器上安装打包并手动将其复制到site-packages.

我已在 Debian 下的家用笔记本电脑上成功安装了该软件包。

我到处都遇到了复制整个site-packages目录的建议。我不想做的事情,因为我在两台机器上都有不同的包,我想避免弄乱其他东西。

我复制了包的.so构建和.egginfo。然后,在目标机器上,pip freeze确实向我展示了传输的包。但是,当我尝试导入和使用它时,Python 找不到它。

我还缺少其他东西吗?

4

1 回答 1

2

不是任何一个。

不要乱用系统 Python 的 site-packages 目录,它只属于系统 Python env。您应该只使用操作系统的包管理器(yum用于 CentOS)在其中添加/删除代码。在 Linux 中尤其如此,许多操作系统服务都可以依赖系统 Python。

那么该怎么做呢?使用 virtualenv 和/或pipx将您要安装的软件包的任何其他依赖项与系统版本隔离开来。

于 2019-10-28T23:23:15.470 回答