gpt4 book ai didi

python - 使用在 guest VM 上的主机中创建的 Python virtualenvs

转载 作者:行者123 更新时间:2023-12-04 18:54:33 24 4
gpt4 key购买 nike

我的主机上有一个目录,其中包含一个 virtualenv。此目录与我必须在其上运行一些 Python 脚本(包含在同一目录中)的虚拟机共享。

当我在主机上的 virtualenv 中运行 Python 脚本时,脚本可以毫无问题地看到/使用 venv 包。但是,当我尝试在激活了相同 venv 的虚拟机中运行某些东西时,Python 看不到这些包。

一种解决方法是在客户机中创建一个新的 virtualenv 并使用主机的 requirements.txt 来填充包。另一个“但是”:我无法在 guest 机器上安装 virtualenv。我跑pip install virtualenv ,它等待了将近一分钟,然后我得到以下信息:

Cannot fetch index base URL https://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement virtualenv
Cleaning up...
No distributions at all found for virtualenv
Storing debug log for failure in /home/mininet/.pip/pip.log

日志中的重要部分是:
usr/bin/pip run on Thu Jul 23 03:29:31 2015
Downloading/unpacking virtualenv
Getting page https://pypi.python.org/simple/virtualenv/
Could not fetch URL https://pypi.python.org/simple/virtualenv/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/virtualenv/ (Caused by <class 'socket.gaierror'>: [Errno -2] Name or service not known)

FWIW 我正在使用 VirtualBox 和 Mininet VM (Ubuntu)。 VM 可以访问 Internet。

那么,我的主要问题是 为什么我在 guest 机器上不能使用主机venv的包即使使用相同的共享venv?

两个次要问题是为什么我不能在 guest 机器上安装 virtualenv,如果 guest 没有安装 virtualenv,我如何激活 guest 机器中的共享 venv?

最佳答案

virtualenv 中的文件包含在主机系统上工作但可能不在 guest 系统上工作的绝对文件路径。您可以通过使 virtualenv 可重定位来解决这个问题(在主机系统上运行它):

virtualenv --relocatable ENV

documentation 中的更多信息(和注意事项) .

此外,您没有提到主机操作系统是什么 - 正如文档所述,virtualenv 只有在操作系统相同的情况下才能共享,因为库位置和二进制格式等原因。

(我不知道为什么你不能在 guest 上创建 virtualenv - 你能在那里 wget https://pypi.python.org/simple/virtualenv/ 吗?)

关于python - 使用在 guest VM 上的主机中创建的 Python virtualenvs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31585063/

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