gpt4 book ai didi

python - 如何将访问全局包的python虚拟环境复制到另一台机器

转载 作者:行者123 更新时间:2023-11-28 22:37:49 31 4
gpt4 key购买 nike

我已经使用 python 虚拟环境设置

$ virtualenv --system-site-packages env

它在我设置了虚拟环境的机器上工作正常,我可以访问脚本中的所有全局包。

然后我按照这些步骤将这个虚拟环境复制到另一台机器上-

  1. 使虚拟环境在我的本地机器上可重定位 $ virtualenv --relocatable env
  2. env 文件夹复制到远程计算机。
  3. 修改env/bin/activate脚本,改变远程机器上的VIRTUAL_ENV路径

有了这个,我可以很好地访问我所有的本地包。但由于某种原因它无法访问系统级包。我尝试使用的系统级包是 psycopg2。

但是在远程机器上做下面这样的事情让我可以访问 psycopg2 模块

$ ln -s /usr/lib64/python2.7/dist-packages/psycopg2 $virtual_env/lib/python2.7/site-packages

$ cp -R /usr/lib64/python2.7/dist-packages/psycopg2 $virtual_env/lib/python2.7/site-packages

有什么方法可以让我在不进行这种破解的情况下正常工作吗?--system-site-packages 选项如何工作?据我所知,--system-site-packages 选项不会将系统级包硬拷贝到虚拟 env。那么它是否在脚本中设置了某种我可以更改并使其正常工作的路径变量?

最佳答案

您不复制 virtualenvs,而是重新创建它们。默认情况下,它们根本不能跨机器移植,也不能跨文件夹移植(除非您指定 --relocatable)。

pip freeze 为您提供已安装包的列表,将该列表保存到文件中(通常称为 requirements.txt),将其复制到新机器,创建virtualenv,激活它并运行 pip install -r requirements.txt


此外,使用 --system-site-packages 很少是个好主意。除非你的机器上没有编译器,否则只需安装 postgres 开发头文件(postgresql-dev 或类似的包),然后在你的 virtualenv 中安装 pip install psycopg2

关于python - 如何将访问全局包的python虚拟环境复制到另一台机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182558/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com