我创建了一个python3虚拟环境(明确地避免使用符号链接--copies):
» python3 -m venv --without-pip --copies venv
Run Code Online (Sandbox Code Playgroud)
这是我现在完整的虚拟环境:
» tree venv/
venv/
??? bin
? ??? activate
? ??? activate.csh
? ??? activate.fish
? ??? python
? ??? python3
??? include
??? lib
? ??? python3.4
? ??? site-packages
??? lib64 -> lib
??? pyvenv.cfg
Run Code Online (Sandbox Code Playgroud)
我禁用了PYTHONPATH,以确保没有任何东西从外面泄漏:
» PYTHONPATH=""
Run Code Online (Sandbox Code Playgroud)
激活venv:
» source venv/bin/activate
Run Code Online (Sandbox Code Playgroud)
确认activate没有污染我的PYTHONPATH:
» echo $PYTHONPATH
Run Code Online (Sandbox Code Playgroud)
(空白,如预期的那样)
我正在使用正确的python:
» which python
/foo/bar/venv/bin/python
Run Code Online (Sandbox Code Playgroud)
但仍在访问系统模块:
» python
Python 3.4.3 (default, Oct …Run Code Online (Sandbox Code Playgroud) 我在我的mac os上使用python3.6在这个文件夹中创建了一个venv
/Users/kim/Documents/Apps/PythonApps/python36-miros-a3
我在pip install pylint激活虚拟环境后运行了一个
我的工作区在 /Users/kim/Documents/Apps/WebApps/miros-a3
在我的vscode工作区内,我有以下工作区设置
{
"folders": [
{
"path": "."
}
],
"settings": {
"python.pythonPath": "/Users/kim/Documents/Apps/PythonApps/python36-miros-a3/bin/python3.6",
"python.venvPath": "/Users/kim/Documents/Apps/PythonApps"
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试为pylint设置自定义路径,也改变了venvpath.
pylint一直在抱怨导入声明说它不存在.
如您所见,它们位于同一个文件夹中,我绝对可以执行我的python文件.
我该怎么做才能避免这种误报导入错误?
我也尝试过以下方法:
code以按照此处的建议激活vscode https://code.visualstudio.com/docs/setup/machttps://coverage.readthedocs.io/en/coverage-4.5.1a/source.html#source
我的覆盖范围还包括“venv”文件夹,无论我做什么,我都想排除它 --include 或省略没有任何效果
coverage run --omit /venv/* tests.py
Run Code Online (Sandbox Code Playgroud)
这会运行测试,但仍会添加“venv”文件夹和依赖项及其覆盖率百分比
当我做
coverage run --include tests.py
Run Code Online (Sandbox Code Playgroud)
只运行测试 - 它说
Nothing to do.
Run Code Online (Sandbox Code Playgroud)
这很烦人......有人可以帮忙吗?
我的磁盘上有几个虚拟环境(几十个),由venvPython 3.6 模块制作。现在我匆忙升级到 Ubuntu 19.10,后来才注意到 Ubuntu 19.10 根本不可用 3.6 从公认的来源。通过定位在我的主目录下并在包含的文件夹上运行,我设法升级了这些虚拟环境的Python 版本。bin/python3python3.7 -mvenv --upgrade
现在,虽然python3.7 -mvenv --upgrade在虚拟环境中升级 Python,但lib/python3.7/site-packages在venv. 我想我可以通过安装Python 3.6,已经这样做了pip freeze荷兰国际集团从需求venv,然后VENV升级到Python 3.7,pip install -r荷兰国际集团-只要有Python的3.6安装可用于我的新的操作系统。
有没有其他方法可以以相当自动化的方式(也许主要是pip freeze使用旧lib/python3.6目录)来做到这一点,而我不必从源代码安装 Python 3.6、使用 conda 或从一些随机 PPA 安装 3.6?我想整体升级所有环境,以便将来当我需要对随机环境执行某些操作时,它将继续使用 Python 3.7。
我有一个像这样的 monorepo 结构:
\nmyRepo/\n\xe2\x94\x9c\xe2\x94\x80 project_1/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 .venv/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 main.py\n\xe2\x94\x9c\xe2\x94\x80 project_2/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 .venv/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 main.py\n\xe2\x94\x9c\xe2\x94\x80 .gitignore\n\xe2\x94\x9c\xe2\x94\x80 README.md\nRun Code Online (Sandbox Code Playgroud)\n经过一番谷歌搜索后,我找到了一个解决方案,但它不是很优雅。我创建了一个工作区并添加了有效的文件夹/project_1和/project_2,我可以轻松切换并选择 Python Interpreter。我还需要/root不时修改文件,所以我也添加了这个文件夹。所有这些使得资源管理器文件夹结构变得更大并且更混乱,其中包含其自身的重复项:
workspace/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 myRepo/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project_1/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project_2/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .gitignore\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 myRepo/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project_1/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 project_2/\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\nRun Code Online (Sandbox Code Playgroud)\n 关于 TensorFlow,我总是遇到同样的错误:
ModuleNotFoundError: No module named 'tensorflow.contrib'。
我实际上使用的是Python版本3.9,但是,在网上阅读,该版本似乎3.7是可以与TensorFlow版本一起使用的最后一个稳定版本>2.0。
不幸的是,我用错误的 Python 版本启动了我的项目venv,我想降级它,我该怎么做?
要使用创建虚拟环境,virtualenv您可以指定 Python 版本和点版本,如下所示:
virtualenv --python=python3.6 .venv
Run Code Online (Sandbox Code Playgroud)
如何使用 Python3 的venv模块(如python3 -m venv .newvenv)来实现这一点?根据文档,使用venv是创建虚拟环境的推荐方法,但我没有看到如何选择具有特定 Python 版本的虚拟环境。
我对 Python 比较陌生,我一直在为我的不同项目创建虚拟环境。如果我使用以下命令:
python3 -m venv <name_of_env>
Run Code Online (Sandbox Code Playgroud)
这可以工作并使用 python 3.8.5 创建虚拟环境
但是,如果我使用 -> python3.9 -m venv <name_of_env> 尝试相同的命令,它会返回错误 Error: Command '['/home/andrew/coding/pythonCourse/test_folder/tested_works/bin/testing_fails/bin/python3. 9'、'-Im'、'ensurepip'、'--upgrade'、'--default-pip']' 返回非零退出状态 1。
发生此错误后,它确实创建了该文件夹,但 bin 文件没有激活文件,我无法激活它。
上面的方法不适合python 3.9吗?使用 Conda,我在 3.9 中创建虚拟环境没有任何问题。
预先感谢您的任何建议。
这是我的环境:
CentOS 64位7.2.1511
Anaconda 3 4.1.1 64位(Python 3.5.2)
我想通过创建venv虚拟环境pyvenv.不幸的是,我收到此错误消息:
$ pyvenv test
Error: Command '['/root/test/bin/python', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
在搜索互联网后,人们说模块ensurepip丢失了.我检查了我的Anaconda安装路径/opt/anaconda3/lib/python3.5.没有ensurepip文件夹.
然后,在我的Windows 10 64位上,我检查了我的Anaconda安装路径D:\win10\Anaconda3\Lib\.有一个ensurepip文件夹!我可以成功python -m venv test地创建一个venv.
然后,我检查了下载Anaconda python档案:
D:\win10\Anaconda3\pkgs\python-3.5.2-0.tar.bz2在Windows 10和
/opt/anaconda3/pkgs/python-3.5.2-0.tar.bz2CentOS 7上.
Windows 10上的一个存档有一个ensurepip子文件夹.但是CentOS 7上没有!
有谁知道这个区别?这是Anaconda的错误吗?
我在用户的主目录下编译了 Python 3.8.1
configure --prefix=/home/a_user/python3.8 --enable-shared
Run Code Online (Sandbox Code Playgroud)
python3 -m venv test_env
Error: Command '['/home/a_user/test_env/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Run Code Online (Sandbox Code Playgroud)
test_env/
??? bin
? ??? python -> python3
? ??? python3 -> /home/a_user/python3.8/bin/python3
??? include
??? lib
? ??? python3.8
? ??? site-packages
??? lib64 -> lib
??? pyvenv.cfg
6 directories, 3 files
Run Code Online (Sandbox Code Playgroud)
python3 -m ensurepip
Looking in links: /tmp/tmpeqrn78f5
Requirement already satisfied: setuptools in ./python3.8/lib/python3.8/site-packages (41.2.0)
Requirement already satisfied: pip in …Run Code Online (Sandbox Code Playgroud) python-venv ×10
python ×9
virtualenv ×4
python-3.x ×3
anaconda ×1
coverage.py ×1
pylint ×1
python-3.8 ×1
tensorflow ×1
unit-testing ×1