Python虚拟环境不包含默认的Python包

2024-05-31 23:44:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须创建虚拟环境并将其移动到某个远程服务器。 为此,我创建了一个环境,但它不包含像json和logging这样的默认python包。你知道吗

导入某些包时出错: 回溯(最近一次呼叫): 文件“”,第1行,在 ModuleNotFoundError:没有名为“json”的模块

如您所见,json来自默认路径,而不是来自虚拟环境

source venv3/bin/activate
(venv3) [user1@nn1 ~]$ python
Python 3.7.4 (default, Dec 12 2019, 12:03:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> print(json.__file__)
/usr/local/lib/python3.7/json/__init__.py
>>> import influxdb
>>> print(influxdb.__file__)
/home/user1/venv3/lib/python3.7/site-packages/influxdb/__init__.py

Tags: pyimport服务器json远程环境initlib
3条回答

Virtualenv没有默认的包。如果没有,那么import语句本身就会出现错误。不在进一步的命令上。你知道吗

VirtualNV不能在服务器之间移动。你把virtualenv移到新服务器了吗?如果是这样,我认为最简单的方法就是在远程服务器上重新创建它。你知道吗

虚拟环境使用绝对路径(例如,从环境变量检索);您可以在the documentationPEP 405中找到更多信息。所以,即使你把你的venv移到另一个目录,它也很可能不再工作了。复仇者不应该被移动。相反,无论你在哪里复制你的项目,你都必须重新创建你的venv。你知道吗

如果您使用poetrypipenv之类的库,或者简单地使用要求.txt文件。你知道吗

相关问题 更多 >