我使用命令行
python3 -m venv .venv
Run Code Online (Sandbox Code Playgroud)
并创建了一个新的 .venv 模块,但出现错误:
错误:命令'['/home/achu/Documentos/portfolio2023/.venv/bin/python3'、'-m'、'ensurepip'、'--upgrade'、'--default-pip']'返回非-零退出状态 1
bin 目录不包含该activate文件。
我试过了
$ apt install python3.12-dev python3.12-venv
Run Code Online (Sandbox Code Playgroud) 使用GitHub的.gitignore,我能够过滤掉一些文件和目录.然而,有一些事情让我有点困惑:
home = /usr/bin,虽然可能在许多Linux发行版上可能正确,但不一定适用于所有系统.我错过了还有其他文件/目录吗?对于如何构建项目以及包含哪些内容,是否有更严格的指导原则?
我正在尝试使用 Python3.6 设置 venv,但收到了在其他各种帖子(例如此处)中已经提到的错误。不幸的是,所提出的解决方案都没有奏效。
我已经安装了必要的软件包
$ sudo apt install python3.6-venv
...
$ dpkg -l | grep "python3.6-venv"
ii python3.6-venv 3.6.5-5~16.04.york0 amd64 Interactive high-level object-oriented language (pyvenv binary, version 3.6)
Run Code Online (Sandbox Code Playgroud)
我还安装了python3-venv(适用于 python 3.5)。现在尝试设置我收到的 venv 时
python3.6 -m venv test
The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
apt-get install python3-venv
You may need to use sudo with that command. …Run Code Online (Sandbox Code Playgroud) 当使用python -m venv env创造python3.X一个新的虚拟环境中,env不包含pip与setuptools版本我期望的那样。相反,它包含很“旧”版本:pip (8.1.1)和setuptools (20.7.0)为2018年6月的。
在另一方面,当使用virtualenv env(通过安装pip install virtualenv),画中画和setuptools的包都是最新的,即pip (10.0.1)和setuptools (39.2.0)为2018年6月的。
据我了解,它venv是构建虚拟环境的首选模块,因为它无需创建Python解释器的新实例,并且无需安装任何内容即可使用现有模块(Linux中的符号链接,Windows中的副本)(https: //www.reddit.com/r/learnpython/comments/4hsudz/pyvenv_vs_virtualenv/d2s2cda)。
为什么说venv的pip版本不匹配当前的系统吗?而且使用的行为virtualenv是如此不同?
PS:
短期的解决方案是使用pip install --upgrade pip的env。但这对我来说似乎不对。最小可行的解决方案:
$ python --version
Python 3.6.5
$ pip --version
pip 10.0.1 from /home/lionel/.local/lib/python3.6/site-packages/pip (python 3.6)
$ python -m venv …Run Code Online (Sandbox Code Playgroud) 我正在Windows上使用最新版本的Python,并尝试venv与以下代码一起使用:
C:\envs> py -m venv test
Run Code Online (Sandbox Code Playgroud)
即使实际上创建了venv,它也会返回此错误,我不明白为什么。而且我不能激活venv代码
C:\envs> C:\envs\test\Scripts\activate.bat
Run Code Online (Sandbox Code Playgroud)
退货
无法将“ C:\ envs \ test \ Scripts \ activate.bat”识别为内部或外部命令,可操作程序或批处理文件。
下面的命令将导致不同的输出,具体取决于我是从桌面上的文件夹还是从 Google Drive File Stream 文件夹工作
这是命令:
python3 -m venv env
Run Code Online (Sandbox Code Playgroud)
如果我使用的文件夹是 Google Drive File Stream 文件夹,我会收到以下错误消息:
Unable to symlink '/usr/local/bin/python3' to '/Volumes/GoogleDrive/Mon Drive/perso/coding/Python/Environments/env/bin/python3'
Run Code Online (Sandbox Code Playgroud)
但是,如果我从位于桌面上的文件夹中执行相同操作,则不会收到任何错误消息,并且我可以毫无问题地激活/停用 venv。
我认为这在某种程度上与特定的用户权限有关,但我很感激您的意见,因为我不想在操作系统级别搞砸事情。
我已经使用 python3 安装了 venv 和 fish like 并使用 env/bin/activate.fish 激活,但是在 env/bin/ 中没有deactivate.fish
? ls env/bin/
activate activate.fish easy_install pip pip3.7 python3
activate.csh chardetect easy_install-3.7 pip3 python yapf
Run Code Online (Sandbox Code Playgroud)
我怎样才能停用venv?
使用 conda 创建新环境时,我们会得到一个完全空的虚拟环境:
conda create --name=test
conda activate test
conda list
Run Code Online (Sandbox Code Playgroud)
最后一个命令的输出是一个空列表,甚至没有pip安装。我想用 pythonvenv命令实现相同的结果(或者至少只pip安装了“最小”虚拟环境)。当我运行时python -m venv test,新环境包含所有“系统范围”可用的包:
python -m venv test
source test/bin/activate
pip freeze
Run Code Online (Sandbox Code Playgroud)
输出一长串包。
根据文档,该命令具有--system-site-packages参数,但看起来默认情况下已启用,我找不到禁用它的方法。我也试过使用旧的 virtualenv--clear参数,但显然它没有被考虑在内。
编辑:
原来是环境模块module命令干扰了 python 模块(https://modules.readthedocs.io/en/latest/)。运行后module purge pip freeze返回空列表。
在用户站点 .pth 文件在解释器启动时处理一次:
$ echo 'import sys; sys.stdout.write("hello world\n")' > ~/.local/lib/python3.8/site-packages/hello.pth
$ python3.8 -c ""
hello world
Run Code Online (Sandbox Code Playgroud)
它在系统站点中的行为相同,例如/usr/local/lib/python3.8/site-packages/。
但在 venv 中,它们被处理两次:
$ rm ~/.local/lib/python3.8/site-packages/hello.pth
$ /usr/local/bin/python3.8 -m venv .venv
$ source .venv/bin/activate
(.venv) $ echo 'import sys; sys.stdout.write("hello world\n")' > .venv/lib/python3.8/site-packages/hello.pth
(.venv) $ python -c ""
hello world
hello world
Run Code Online (Sandbox Code Playgroud)
为什么在虚拟环境中路径配置文件要处理两次?
我已经坚持了几天,如果可以的话,请帮我。
我的根项目文件夹上有venv文件夹。当我尝试设置Python解释器时,它仅显示我机器中安装的Python,而不显示我的根文件夹中的Python。
在我格式化PC并安装Windows 10 64位之前,它工作正常。(在Windows 7 64位之前运行)
我尝试过的事情:
pythonPath和/或手动设置路径venvPath: "python.pythonPath": "F:/Web Dev/Python/Django/project_x_v2/backend/venv/Scripts/python.exe",
"python.venvPath": "F:/Web Dev/Python/Django/project_x_v2/backend/venv/Scripts/python.exe",
Run Code Online (Sandbox Code Playgroud)
它向我显示了占位符中的正确位置,但是我没有选择从下拉列表中选择的位置:
有什么想法可以解决这个问题吗?
非常感谢你。
编辑:
~\AppData\...位于磁盘C:\中,而我的venv位于磁盘F:中。我不确定这是否相关;python-venv ×10
python ×9
python-3.x ×3
virtualenv ×2
django ×1
fish ×1
git ×1
pip ×1
ubuntu-16.04 ×1