标签: python-venv

将 Docker 与 Python Poetry 结合使用?

我一直在使用 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)

python linux docker python-venv python-poetry

2
推荐指数
1
解决办法
1万
查看次数

强制streamlit在特定的python版本(或特定环境下)运行

我有一个 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 中运行!

python environment python-venv streamlit

2
推荐指数
1
解决办法
2109
查看次数

无服务器框架 - useDotenv 未在 AWS 中加载 env 文件

我在 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

2
推荐指数
1
解决办法
1469
查看次数

`pip install -U pip -rrequirements.txt` 是否在安装需求之前升级 pip?

使用以下某些变体来设置 Python 虚拟环境似乎是常见的做法:

python -m venv venv && source ./venv/bin/activate
python -m pip install -U pip -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

我希望上述命令的作用是:

  1. 升级pip
  2. 运行软件包的安装requirements.txt

然而,实际发生的情况似乎是:

  1. 收集所有包,包括最新版本pip
  2. 将它们全部安装在一起
    • 原始/过时版本pip是实际运行安装的版本
    • 并且直到执行此命令之后pip使用新版本

问题)

  1. 是否可以通过一个命令让 pip 自行升级,然后安装需求文件?
    • 这会带来什么特别的好处吗?
  2. 我应该切换到以下内容吗?
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)
  1. 安装需求文件的最佳方法是什么?
    • 我有时会看到人们安装/wheel升级setuptools

python pip requirements.txt python-venv

1
推荐指数
1
解决办法
3992
查看次数

bash:基本名称:在 Windows git 上找不到命令

我正在做一个 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 git-bash python-venv

1
推荐指数
1
解决办法
2460
查看次数

python virtualenv 在 Windows 11 上未激活

我使用 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给我这个错误

“无法加载,因为该系统上禁用了脚本的执行”。

Problem : venv is not activated
Run Code Online (Sandbox Code Playgroud)

python windows python-3.x python-venv

1
推荐指数
1
解决办法
4575
查看次数

Pyright 看不到 Poetry 依赖关系

在诗歌项目中,本地依赖项安装在~/.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)

python python-venv python-poetry pyright

1
推荐指数
2
解决办法
3147
查看次数

仅使用虚拟环境文件夹运行 python 脚本

让我们留下我pipenv用来创建虚拟环境的方法。在设置时,在Pipfile中指定python版本,同时PIPENV_VENV_IN_PROJECT设置环境变量,以便.venv在项目文件夹中创建文件夹。

.venv文件夹内,我发现它包含我在 pipfile 中指定的所有包,甚至还有我指定版本的 python 可执行文件。

如果我将我的脚本和这个.venv文件夹复制到另一台没有安装 Python 的机器上,我如何只使用该.venv文件夹运行我的脚本?那里有一个 Python 可执行文件,但我正试图弄清楚如何正确获取所有 lib 文件夹。

这甚至可能吗?我知道存在替代方法(例如使用 Cython/CXFreeze/etc 预编译代码。)但我想知道只使用虚拟环境文件夹。

python virtualenv python-venv pyenv pipenv

0
推荐指数
1
解决办法
8852
查看次数

如何获取Linux服务器上安装的python虚拟环境列表

我是 linux 环境的新手。我有一台 linux 服务器,在该服务器上我在某个虚拟环境中安装了 python3(但我不再记得虚拟环境的名称)。我知道如果我在 Windows 计算机上使用 anaconda,我会执行以下操作来获取虚拟环境名称。

conda info --envs
Run Code Online (Sandbox Code Playgroud)

问题是如何获取我的 linux 服务器上所有虚拟环境的列表以及这些环境的路径?特别是,我想要一个包含我的 python3 的 bin 文件夹的链接,以便我可以激活我的虚拟环境。

python-venv python-3.6 ubuntu-16.04

0
推荐指数
1
解决办法
9144
查看次数