我一直在使用 Docker 和 pipelinev 进行数据科学部署设置,现在我想更改为 Poetry。我的 Dockerfile 是:
FROM python:3.8-alpine3.13
ENV POETRY_VIRTUALENVS_CREATE=false \
POETRY_VERSION=1.1.11
RUN apk add --no-cache python3-dev gcc libc-dev musl-dev openblas gfortran build-base postgresql-libs postgresql-dev libffi-dev \
&& pip install poetry
COPY pyproject.toml poetry.lock ./
RUN poetry export -f requirements.txt --output requirements.txt && sed -i 's/^-e //' requirements.txt
USER root
RUN apt-get update && apt-get install -y --no-install-recommends python3-dev gcc libc-dev musl-dev openssh-client git libpq-dev \
&& apt-get clean -y
# install dependencies from requirements.txt
RUN pip install …Run Code Online (Sandbox Code Playgroud) 我有一个 Streamlit 应用程序,设置为通过双击 *.bat 文件来运行,该文件包含启动应用程序的命令:streamlit run myApp.py。有谁知道如何强制该应用程序在特定的 python 版本中运行?我的基础Python是3.9,我创建了一个基于Python 3.6的环境(conda env create ...),我在其中安装了streamlit并创建了应用程序,我希望它在那里运行。我使用该环境打开 sypder,仔细检查 env 是否处于活动状态(spyder 控制台中的 python --version),但是当我使用 *bat 文件运行应用程序时,它显示正在 python 3.8 中运行!
我在 serverless.yml 上使用 useDotenv 属性,但它未在 AWS 中加载:
org: xyz
app: route-learner
service: route-learner-cron
frameworkVersion: '3'
useDotenv: true
provider:
name: aws
runtime: python3.8
stage: ${opt:stage, 'dev'}
functions:
extract_route:
handler: src.functions.extract_route.run
events:
# Invoke Lambda function at every 5th minute.
- schedule:
rate: cron(5,15,25,35,45,55 * * * ? *)
vpc:
securityGroupIds:
- ...
subnetIds:
- ...
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: true
Run Code Online (Sandbox Code Playgroud)
我在根目录中有一个 .env.prod 文件,其中包含以下内容:
DB_URI=my_db_url
DB_VERBOSE=True
Run Code Online (Sandbox Code Playgroud)
我正在使用以下命令部署该功能:
serverless deploy --stage prod --verbose
Run Code Online (Sandbox Code Playgroud)
调用该函数后,我看到以下错误:
[ERROR] KeyError: 'DB_URI'
Traceback (most recent call …Run Code Online (Sandbox Code Playgroud) python environment-variables python-venv serverless-framework
使用以下某些变体来设置 Python 虚拟环境似乎是常见的做法:
python -m venv venv && source ./venv/bin/activate
python -m pip install -U pip -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
我希望上述命令的作用是:
pip先requirements.txt然而,实际发生的情况似乎是:
pippip是实际运行安装的版本pip才使用新版本问题)
python -m venv venv && source ./venv/bin/activate
python -m pip install -U pip
python -m pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
wheel升级setuptools我正在做一个 python 项目。我的机器是 Windows 10,64 位。我安装了 Git,并尝试从 pycharm 终端调用
source venv\Scripts\activate. 结果我收到错误bash: basename: command not found \n()。是的,这些括号出现在错误下方一行。此外,分支名称从终端提示符中消失。从此时起,终端将不再识别所有 bash 命令。对 ls、cp 或 source 的任何尝试都会导致相同的错误消息。
重新启动 pycharm 会导致 bash shell 再次处于活动状态,并在提示符下显示分支名称,但调用 source 将其关闭并出现相同的错误。
知道如何解决这个问题并正确激活 venv 吗?
我使用 python 10 和 windows-11 我尝试使用以下命令激活 venv
.\onlineShop\Scripts\activate.bat
Run Code Online (Sandbox Code Playgroud)
我使用以下命令创建 venv
python -m venv onlineShop
Run Code Online (Sandbox Code Playgroud)
我的点子列表
Package Version
------------ -------
distlib 0.3.4
filelock 3.6.0
pip 22.0.4
platformdirs 2.5.2
pyaes 1.6.1
Pyrogram 2.0.17
PySocks 1.7.1
setuptools 58.1.0
six 1.16.0
virtualenv 20.14.1
Run Code Online (Sandbox Code Playgroud)
当我使用时也.\onlineShop\Scripts\activate给我这个错误
“无法加载,因为该系统上禁用了脚本的执行”。
Run Code Online (Sandbox Code Playgroud)Problem : venv is not activated
在诗歌项目中,本地依赖项安装在~/.cache/pypoetry/virtualenvs/文件夹中。nvim 中的 Pyright 抱怨import无法解析包行。我应该包含什么内容pyproject.toml?或者如何向pyright显示依赖项的路径?谢谢
我的pyrightconfig.json看起来像这样:
{
"venvPath": ". /home/ajanb/.cache/pypoetry/virtualenvs/",
"venv": "tools-configfactory-materialmodel-jnEEQvIP-py3.10"
}
Run Code Online (Sandbox Code Playgroud)
我发现我需要将它添加到neovim的配置文件中,你能帮我把它写成.lua吗?
au FileType python let b:coc_root_patterns = ['.git', '.env', 'venv', '.venv', 'setup.cfg', 'setup.py', 'pyrightconfig.json']
Run Code Online (Sandbox Code Playgroud) 让我们留下我pipenv用来创建虚拟环境的方法。在设置时,在Pipfile中指定python版本,同时PIPENV_VENV_IN_PROJECT设置环境变量,以便.venv在项目文件夹中创建文件夹。
在.venv文件夹内,我发现它包含我在 pipfile 中指定的所有包,甚至还有我指定版本的 python 可执行文件。
如果我将我的脚本和这个.venv文件夹复制到另一台没有安装 Python 的机器上,我如何只使用该.venv文件夹运行我的脚本?那里有一个 Python 可执行文件,但我正试图弄清楚如何正确获取所有 lib 文件夹。
这甚至可能吗?我知道存在替代方法(例如使用 Cython/CXFreeze/etc 预编译代码。)但我想知道只使用虚拟环境文件夹。
我是 linux 环境的新手。我有一台 linux 服务器,在该服务器上我在某个虚拟环境中安装了 python3(但我不再记得虚拟环境的名称)。我知道如果我在 Windows 计算机上使用 anaconda,我会执行以下操作来获取虚拟环境名称。
conda info --envs
Run Code Online (Sandbox Code Playgroud)
问题是如何获取我的 linux 服务器上所有虚拟环境的列表以及这些环境的路径?特别是,我想要一个包含我的 python3 的 bin 文件夹的链接,以便我可以激活我的虚拟环境。
python-venv ×9
python ×8
docker ×1
environment ×1
git-bash ×1
linux ×1
pip ×1
pipenv ×1
pyenv ×1
pyright ×1
python-3.6 ×1
python-3.x ×1
streamlit ×1
ubuntu-16.04 ×1
virtualenv ×1
windows ×1