【发布时间】:2019-03-14 00:36:34
【问题描述】:
我有一个通过 Dropbox 在多台机器上使用的 virtualenv。我们的保管箱都在同步到同一个位置,(或者至少是符号链接,所以它看起来如此)所以,重定位问题应该没有实际意义。
在我的机器上,一切正常。我可以创建一个 virtualenv,它工作正常。但是,别人用的时候,python给No module named contextlib
当我在其他人的计算机上创建 virtualenv 时,它似乎可以在我的计算机上运行(我没有彻底测试过)
所有计算机都是 Mac。我的运行 High Sierra,其他人运行 Mojave,以防万一。
我该如何解决这个问题?或者至少,是什么原因造成的?
我见过Python: No module named contextlib?,但这似乎与嵌入式硬件无关。
注意:我知道 python 认为我不应该这样做。但是,我有一个不是程序员的用户群。他们无法管理自己的 venvs。他们无法处理复杂的码头工人。他们想输入python foo.py 并让它工作。在过去,我已经让它与 venvs 一起使用。
如果python不能轻松处理这种简单的情况,那么我认为这是一个问题。
哦,我知道库对于不同的操作系统是不同的,我通过为 Windows 用户设置不同的 venv 来更简单地处理这个问题。效果很好,没有问题。
【问题讨论】:
-
我想说你描述的设置真的很奇怪,我不建议跨多个项目共享库,更不用说跨多台计算机,这就像免费问问题一样。可能是操作系统出了问题,我建议您使用需求文件并习惯
pip install在这里您还可以添加关于可能出错的内容stackoverflow.com/a/35672533/4229159 -
我没有在多个项目中使用它。一个项目被多人使用。我不希望他们维护自己的 venv,因为那样我就必须不断地修复 12 个不同的 venv。对我来说,只拥有一个我自己维护并且每个人都使用的更好。
-
看来这主要是操作系统版本问题。当我在 Mojave 电脑上创建 venv 时,我可以在其他机器上成功运行 python。更多问题将在一个新问题中提出。
-
我遇到了同样的问题。它给出了错误,因为为 python3.5 配置了虚拟环境,然后我更新了使用 python3.6 的代码。然后我首先安装了 python3.6 并设置了虚拟环境来使用它。这解决了我的问题。
标签: python macos virtualenv