如何在没有pip安装的情况下仅手动复制单个站点包



首先,我这样做的原因-我知道这是个坏主意,但我没有主意。

我想安装一个需要ld版本的软件包,它比我的Centos 6.5的repo中的版本更高。因此,我要么在Docker中设置所有内容,然后在生产中运行它——这是我缺乏经验的事情,对于一个严肃的项目来说,我觉得不舒服。或者从外部源手动升级ld。我读到的,可能会导致我的Centos的毁灭。因此,我剩下的最后一个选项是在其他机器上安装packed,并手动将其复制到site-packages

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

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

我复制了该包的.so内部版本和.egginfo。然后,在目标机器上,pip freeze确实向我展示了转移的包裹。然而,当我尝试导入和使用它时,Python找不到它。

我是不是错过了什么?

这些都不是

不要弄乱系统Python的站点包目录,这只属于系统Python环境。您应该只使用操作系统的软件包管理器在其中添加/删除代码(适用于CentOS的yum(。在Linux中尤其如此,因为许多操作系统服务都可以依赖于系统Python。

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

最新更新