Python 如何在不安装pip的情况下仅手动复制单个站点包?
首先,我这样做的理由——我知道这是个坏主意,但我没有主意 我想安装一个需要Python 如何在不安装pip的情况下仅手动复制单个站点包?,python,pip,site-packages,Python,Pip,Site Packages,首先,我这样做的理由——我知道这是个坏主意,但我没有主意 我想安装一个需要ld版本的软件包,该版本高于Centos 6.5的repo中的版本。因此,我要么在Docker中设置所有内容,然后在生产中运行它——这是我缺乏经验的事情,对于一个严肃的项目,我感到不舒服。或者从外部源手动升级ld。我读到的,可能会给我的世纪带来毁灭。因此,我剩下的最后一个选项是在其他机器上安装打包软件,并手动将其复制到站点软件包中 我已经在Debian下成功地在我的家用笔记本电脑上安装了这个软件包 我在everywhere
ld
版本的软件包,该版本高于Centos 6.5的repo中的版本。因此,我要么在Docker中设置所有内容,然后在生产中运行它——这是我缺乏经验的事情,对于一个严肃的项目,我感到不舒服。或者从外部源手动升级ld
。我读到的,可能会给我的世纪带来毁灭。因此,我剩下的最后一个选项是在其他机器上安装打包软件,并手动将其复制到站点软件包中
我已经在Debian下成功地在我的家用笔记本电脑上安装了这个软件包
我在everywhere遇到了复制整个站点包
目录的建议。这是我不想做的事情,因为我在两台机器上都有不同的软件包,我想避免弄乱其他东西
我复制了包的.so
构建和.egginfo
。然后,在目标机器上,pipfreeze
确实向我显示了传输的包。但是,当我尝试导入和使用它时,Python找不到它
我还遗漏了什么吗?没有任何遗漏。
不要弄乱system Python的站点包目录,它只属于system Python环境。您应该只使用操作系统的软件包管理器(即CentOS的yum
)在其中添加/删除代码。在Linux中尤其如此,许多操作系统服务都可以依赖系统Python
那么该怎么办呢?使用virtualenv和/或将要安装的软件包的任何其他依赖项与系统版本隔离。您的意思是在Debian上创建一个virtualenv,我可以在其中安装软件包,安装需要的所有其他软件包,并将整个virtualenv文件夹复制到目标Centos服务器上,然后使用virtualenv运行我的应用程序?首先让我澄清一下,您是否需要更新版本的ld(GNU链接器)来从源代码安装Python包?如果是这样的话,我认为您应该只altinstall
一个较新的链接器(或者只是在PATH中临时添加一个链接器)并为这个包构建一个Python bdist。在我的Debian上,它立即安装了。我不想在回购协议之外安装任何链接器,因为我不想冒任何风险。我了解到后果可能非常严重,这是一个生产服务器。您不必安装它。只需在路径上临时从homedir中预装一个较新的链接器,或者使用环境模块。然后执行python setup.py bdist\u wheel
构建一个bdist文件,您可以继续使用它,而无需在安装时使用链接器。