问题标签 [python-venv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3045 浏览

python - 生产中是否需要 Python 虚拟环境?

我试图完全掌握虚拟环境是如何与 Python 一起使用的。我了解他们为程序员完成了什么——允许您在本地为不同的项目安装不同的依赖项,而不会发生冲突。

但是,我不明白这如何转化为将生产 Python 程序部署给最终用户。假设我已经制作了一个程序,它可以工作,并且已经调试完毕,可以开始使用了。我想把它提供给人们。人们是否必须下载这个,把它全部放到它自己的虚拟环境中,pip install然后activate每次他们想运行程序时都去源代码?我觉得,使用 Linux,我的机器上必须至少有一些 Python 程序,我知道我不这样做 - 我只是sudo apt install程序并且它运行。

0 投票
1 回答
1549 浏览

python-3.x - 从 Python3 脚本中激活 venv

我们希望为我们软件的不同版本提供准备部署venv

因此,我想编写一个简单的 Python 脚本,它调用几个 bash 命令来安装我们需要的每个包。

所以步骤是:

  1. 创建一个venv名称以版本号为后缀的名称
  2. 激活这个venv
  3. 从安装包PyPy
  4. cd进入几个本地包文件夹
  5. 通过安装它们git install .
  6. cpvenv文件夹中的几个文件

我现在的问题是,我找不到venv从脚本中激活的方法。我已经读过它是如何在 Python 2 中完成的(带有execfile)和exec(open(path_to_env_activate).read())Python 3 中的。

但是,Python3 的第二个版本给了我一个语法错误:

我在这里做错了什么?或者是否有一种最佳实践如何venv使用带有脚本的软件包进行安装?

0 投票
1 回答
745 浏览

python - 在 python3 mac 上使用 crontab 打开 venv

我在 Mac 上使用 oh-my-zsh,python 3.6.1。我想运行一个 crontab 来执行一个 python3 脚本。

我最近的一次尝试是这个(我发现的 20 个不同的 stackoverflow 答案都没有工作,所以请不要将其作为重复项关闭:

错误是ModuleNotFoundError: No module named 'some_module',因此它没有激活我的 virtual_env,因为该模型存在于最新的虚拟环境中。#!env/latest-env/bin/python在我的脚本顶部使用并运行它时,我得到了同样的错误。

我也尝试了 venv 版本:

但这是针对 python 2 的,所以错误是NameError: name 'execfile' is not defined,当我将其更改为 exec 时,我得到NameError: name 'env' is not defined. 但我知道这是我的道路。

如何在 crontab 中激活我最新的 venv 以运行我的脚本?

0 投票
1 回答
5992 浏览

python - 在使用 venv 虚拟环境时,我应该将哪些文件提交到我的 git 存储库?

使用GitHub 的 .gitignore,我能够过滤掉一些文件和目录。但是,有几件事让我有点困惑:

  • GitHub 的 .gitignore 不包括 venv 创建的 /bin 和 /share。但是,我认为 git 应该忽略它们,因为用户应该自己构建虚拟环境。
  • Pip 生成了一个 pip-selfcheck.json 文件,看起来很杂乱。我认为它通常会这样做,而我之前没有看过该文件,因为它已与我的全局 pip 一起放置。
  • 不过,pyvenv.cfg 是我真的无法理解的。一方面,它指定了python版本,其他想要使用该项目的人应该需要它。另一方面,它还指定home = /usr/bin了 ,虽然在许多 Linux 发行版上可能是正确的,但不一定适用于所有系统。

有没有我错过的其他文件/目录?对于如何构建项目以及包含哪些内容,是否有更严格的指导方针?

0 投票
1 回答
551 浏览

python - 在 python3 虚拟环境中更改默认空闲 (&pip)

我为 python3 项目创建了一个虚拟环境。

但是,当我在其中时,idle 仍然默认为 python 2.7。idle3 命令工作正常。

我可以在虚拟环境中(而不是在它之外)更改空闲的默认版本,以免继续使用错误的版本吗?

(补充问题:我必须为 pip/pip3 做类似的事情吗?)

[运行 Ubuntu 17.04]

0 投票
5 回答
4840 浏览

python - ImportError:没有名为“pandas”的模块(在 virtualenv 中)

我为 python 创建了一个名为 quora 的虚拟环境。我按照指示安装了轮子,然后安装了熊猫。由于某种原因,我无法让熊猫工作。有人能帮我吗。我已经尝试了该网站上类似问题的所有其他解决方案。还是没用。


0 投票
3 回答
5631 浏览

python - Python venv 和 virtualenvwrapper 结合

在 Python 3.5 中,推荐的创建虚拟环境的方法是使用venv而不是virtualenvpython 打包教程仍然提到了这两种工具。

但是virtualenvwrapper是使用 virtualenv 时推荐使用的包装器工具。

我的问题是:

  1. 有没有办法将 virtualenvwrapper 与 venv 一起使用?
  2. 或者甚至可以考虑由于 venv 而不需要 virtualenvwrapper?(我看不出这是怎么回事,因为它是解决另一个问题的包装器)

编辑:我可以看到我的问题的答案有些混乱。venv 是 Python 的 virtualenv 官方等价物,如上面的链接中所述。多个堆栈溢出问题表明应该使用 venv。正如您建议的“重复”中所述:

venv 的引入部分是对这种混乱的回应。如果您想帮助改善情况,我建议您使用 venv 并鼓励其他人也这样做

所以鼓励使用venv。但是正如这个问题所暗示的那样,如果要使用 venv 如何使用像 virtualenvwrapper 这样的包装器

0 投票
1 回答
343 浏览

python - python3.6-venv 劫持 pip。有什么方法可以防止这种情况?

我正在追查安装失败。我有一个全新的 ubuntu xenial 安装。我有几个不同的项目,每个项目都涉及需要不同版本的 python 的依赖项,包括一个 gnuradio 项目,它似乎有合理的期望 pip 指向 python2.7。这是我运行的第一部分:

到目前为止没有投诉,当我检查 pip 和 pip3 时,它们指向我希望它们指向的位置:

现在我为python3.6创建了一个虚拟环境,进入它,在那里pip按预期指向python3.6,我安装了几个包,然后退出虚拟环境,突然pip指向python3.5

I have looked at this question which seems to address a purely anaconda issue, while the solution does not apply in my case. This discussion is more to the point, and points to a problem with pip. That particular bug is at least not quite what is going on for me since I am able to upgrade both pip pointing to python2.7 and pip3 pointing to python3.5, and the pip hijacking is not initiated by an upgrade. Any wisdom shed on this problem is much appreciated.

(edit)

0 投票
1 回答
1492 浏览

python - 未运行 venv 时,OpenTok 构造函数/create_session 失败

在 Debian 服务器中使用 Tokbox运行Django rest api。我通过一个运行良好的 python 虚拟环境运行它,但由于一些原因需要将它从环境中取出。当我这样做时,在安装所有依赖项并使其运行后出现以下错误:

raise RequestError('创建会话失败: %s' % str(e))

opentok.exceptions.RequestError:创建会话失败:创建会话失败,凭据无效

两个键都保存为环境变量并正确带回,我可以记录它们并且它们是正确的。此外,如果我再次打开 python 虚拟环境,错误就会消失。

作为记录,导致错误的代码行是:

源代码中引发异常的函数如下:

起初我认为它必须是对 api 密钥和 api 秘密进行的某种加密或散列。Tokbox 确实为此使用了 jwt,但它是在构造函数调用的函数中完成的,因此当我不使用虚拟环境时也会这样做。headers()上面在请求中调用的函数如下:

0 投票
1 回答
1732 浏览

python - 无法在 Python venv 中导入模块

我在虚拟环境中运行 python3,但是当我尝试导入新安装的包时,我收到一条ImportError: No module named ...错误消息,尽管我在运行!env/bin/pip3 list.

当我键入时,sys.path我看不到任何指向我的 virtualenv 的路径:

如何将我的虚拟环境添加到我的 PYTHONPATH?