每次创建新的 .venv 时,我都会尝试阻止此警告:
> /Users/pi/.pyenv/versions/3.10.0/bin/python -m venv .venv
> . .venv/bin/activate
> pip install ipykernel # or anything
WARNING: You are using pip version 21.2.3; however, version 22.2.2 is available.
You should consider upgrading via the '/Users/pi/code/foo/.venv/bin/python -m pip install --upgrade pip' command.
Run Code Online (Sandbox Code Playgroud)
不知何故,pyenv我的新 .venv 中填充了一个过时的点。
如果我执行建议的命令,它将升级我的 .venv 的 pip。但我不想每次创建 .venv 时都这样做。
我认为这可能会解决它,但事实并非如此:
> /Users/pi/.pyenv/versions/3.10.0/bin/python -m pip install --upgrade pip
Requirement already satisfied: pip in /Users/pi/.pyenv/versions/3.10.0/lib/python3.10/site-packages (22.2.1)
Collecting pip
Using cached pip-22.2.2-py3-none-any.whl (2.0 MB)
Installing collected packages: pip …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 20.04 上的 Python 虚拟环境中安装 Odoo 15。我已经从官方 GitHub 存储库下载了 Odoo,并使用 Nginx 作为反向代理。
\n按照文档在 ubuntu 22.04 中安装和设置 odoo 后,我确实遵循了此链接中的操作文档
\n当我使用命令安装 pip 软件包时,我收到此错误\n pip install -r requirement.txt\nany help please。
Building wheels for collected packages: python-ldap\n Building wheel for python-ldap (pyproject.toml) ... error\n error: subprocess-exited-with-error\n \n \xc3\x97 Building wheel for python-ldap (pyproject.toml) did not run successfully.\n \xe2\x94\x82 exit code: 1\n \xe2\x95\xb0\xe2\x94\x80> [111 lines of output]\n /tmp/pip-build-env-rbfhnio_/overlay/lib/python3.10/site-packages/setuptools/config/setupcfg.py:516: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.\n warnings.warn(msg, warning_class)\n …Run Code Online (Sandbox Code Playgroud) 我正在使用venv(用于pyvenv创建环境),并且想在此处设置环境变量,但是postactivate看起来很像virtualenv。可以做到venv吗?
我试图完全掌握 Python 是如何使用虚拟环境的。我理解他们为程序员完成了什么 - 允许您为不同的项目在本地安装不同的依赖项而不会发生冲突。
但是,我不明白这如何转化为向最终用户部署生产 Python 程序。假设我已经制作了一个程序并且它可以工作并且已经全部调试完毕并且可以使用了。我想让人们可以使用它。人们是否必须下载它,将其全部放入自己的虚拟环境中,pip install然后在activate每次想要运行该程序时从那里获取脚本的源代码?我觉得,使用 Linux,我的机器上必须至少有一些 Python 程序,我知道我不这样做 - 我只是sudo apt install程序并且它运行。
一般来说,我是 Python 的 venv 和虚拟环境的新手。我使用以下方法创建了一个名为 .venv 的环境:
python3 -m venv .venv
Run Code Online (Sandbox Code Playgroud)
然后我激活它并安装了一些软件包。当我使用 列出软件包时pip freeze,我得到以下信息:
(.venv) $ pip freeze
boto==2.48.0
bz2file==0.98
certifi==2017.7.27.1
chardet==3.0.4
click==6.7
...
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试导入这些包中的任何一个ModuleNotFoundError,我会得到一个,例如:
(.venv) $ python -c
"import click"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'click'
Run Code Online (Sandbox Code Playgroud)
我错过了什么???
我刚刚将 python 版本更新为 3.7,但每次激活我的 virtualenv 时,我都会收到以下错误消息:参数格式不正确 - 65001
有谁知道这是什么意思以及如何解决这个问题?
提前致谢!
我正在尝试运行一个 Docker 容器,它抱怨错误消息:/bin/sh: gunicorn: not found。在没有 Docker 的情况下在本地启动服务器工作正常。并且构建图像也可以正常工作。我是 docker 的新手,所以我不知道我的 Dockerfile 中是否有任何东西看起来很奇怪。
我的 Dockerfile:
FROM python:3.7-alpine
RUN adduser -D teamreacher
WORKDIR /home/teamreacher
# copy and install dependencies
COPY ./requirements.txt requirements.txt
RUN python -m venv venv
RUN venv/bin/pip install --upgrade pip
RUN venv/bin/pip install -r requirements.txt
# copy the app
COPY . .
RUN chmod +x boot.sh
RUN chown -R teamreacher:teamreacher ./
USER teamreacher
# expose port and run server
EXPOSE 5000
RUN source venv/bin/activate
CMD gunicorn -b :5000 …Run Code Online (Sandbox Code Playgroud) 由于导入问题,我已按照此处显示的步骤将我的 Python 项目安装为可编辑pip包。基本上这需要pip install -e .从我的项目根目录运行。项目名称为“myproject”,setup.py配置如下:
from setuptools import setup, find_packages
setup(name='myproject', version='1.0', packages=find_packages())
Run Code Online (Sandbox Code Playgroud)
项目结构是这样的:
.
??? myproject
? ??? core
? ? ??? core.py
? ? ??? __init__.py
? ??? tests
? ??? __init__.py
? ??? test_one.py
??? setup.py
??? env
??? ...
Run Code Online (Sandbox Code Playgroud)
随着venv启动,我得到下面的输出:
(env) [root@localhost /]$ python -V
Python 3.6.3
(env) [root@localhost /]$ pip -V
pip 9.0.1 from /myproject/venv/lib64/python3.6/site-packages (python 3.6)
Run Code Online (Sandbox Code Playgroud)
但是,在运行解释会话时,我会遇到以下情况:
(env) [root@localhost /]$ python
>>> import …Run Code Online (Sandbox Code Playgroud) 我正在尝试配置我requirements.txt的以下内容:
wheel
apache-airflow
Run Code Online (Sandbox Code Playgroud)
我创建python3.8 -m venv ~/test-env并尝试进行安装。问题是
python -m pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
产生大量消息
error: invalid command 'bdist_wheel'
----------------------------------------
Failed building wheel for thrift
Run Code Online (Sandbox Code Playgroud)
我确保wheel在安装时requirements.txt安装了它:
Collecting wheel (from -r requirements.txt (line 1))
Using cached https://files.pythonhosted.org/packages/00/83/b4a77d044e78ad1a45610eb88f745be2fd2c6d658f9798a15e384b7d57c9/wheel-0.33.6-py2.py3-none-any.
Run Code Online (Sandbox Code Playgroud)
但是如果我单独安装
python -m pip install wheel
python -m pip install -r requirements
Run Code Online (Sandbox Code Playgroud)
它工作正常,并且python -m pip -r requirements没有错误消息。
那么是不是可以将wheel安装放入requirements.txt?安装时处理它的正确方法是什么venv?安装前要requirements.txt安装吗?
有人刚刚问我如何列出所有使用venv.
我只能想到搜索pyvenv.cfg文件来找到它们。就像是:
from pathlib import Path
venv_list = [str(p.parent) for p in Path.home().rglob('pyvenv.cfg')]
Run Code Online (Sandbox Code Playgroud)
这可能包括一些误报。有没有更好的方法来列出所有用 创build 的虚拟环境venv?
注意:问题是关于venv具体的,而不是Anaconda、virtualenv 等。
python-venv ×10
python ×8
pip ×3
python-3.x ×3
deployment ×1
docker ×1
flask ×1
linux ×1
odoo ×1
package ×1
pyenv ×1
python-3.7 ×1
python-ldap ×1
python-wheel ×1
windows ×1