我正在尝试从 pypi 和私人存储库安装依赖项,这是我的原始版本pyproject.toml,遵循官方文档:
[tool.poetry]\nname = "project_name"\nversion = "0.1.0"\ndescription = ""\nauthors = ["Me <me@gmyself.com>"]\n\n[[tool.poetry.source]]\nname = "private"\nurl = "https://url/to/private_repo"\nsecondary = true\n\n[tool.poetry.dependencies]\npython = "^3.9"\nFlask = "^2.1.2"\nprivate_package = "*"\n\n[tool.poetry.dev-dependencies]\nblack = "^22.6.0"\nmypy = "^0.961\n\n[build-system]\nrequires = ["poetry-core>=1.0.0"]\nbuild-backend = "poetry.core.masonry.api"\nRun Code Online (Sandbox Code Playgroud)\n然而,运行poetry install诗歌会导致尝试安装私人存储库中的每个要求,至少这是我从生成的回溯中了解到的:
\xe2\x9d\xaf poetry install\nUpdating dependencies\nResolving dependencies... (0.2s)\n\n RepositoryError\n\n 403 Client Error: Forbidden for url: https://url/to/private_repo/mypy/\n\n at ~/.local/lib/python3.9/site-packages/poetry/repositories/legacy_repository.py:393 in _get\n 389\xe2\x94\x82 if response.status_code == 404:\n 390\xe2\x94\x82 return\n 391\xe2\x94\x82 response.raise_for_status()\n 392\xe2\x94\x82 except requests.HTTPError as e:\n \xe2\x86\x92 393\xe2\x94\x82 raise RepositoryError(e)\n …Run Code Online (Sandbox Code Playgroud) 我正在研究两个项目,我们称它们为Project A和Project B。
Project B需要一些模块Project A,所以我做了一个poetry buildon Project A。pip install dist/blabla.whl当我手动对诗歌生成的构建执行 a 时,我能够访问该模块Project A。
但是当我做 a 时poetry add project-a git+ssh://git@gitlab.blabla.co/nubela/project-a.git#develop,它说
找不到包项目-a的匹配版本
当然,我理解,因为project-a它不是经典地与 setup.py 之类的东西一起打包的。那么我如何在poetry add <git-repo-uri>不涉及自托管 pypi 实例的情况下执行?
我可以将 .whl 文件推送到项目 git 存储库,这有帮助吗?
我使用 Poetry 为我的示例包(https://github.com/iamishalkin/cyrtd)构建 tar.gz 和 whl 文件,然后尝试在 pipenv 环境中安装包。tar.gz 安装失败,这是一段日志:
$ poetry build
...
$ pip install dist/cyrtd-0.1.0.tar.gz
Processing c:\work2\cyrtd\dist\cyrtd-0.1.0.tar.gz
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Requirement already satisfied: cython<0.30.0,>=0.29.13 in c:\users\ivan.mishalkin\.virtualenvs\cyrtd-tpdvsw8x\lib\site-packages (from cyrtd==0.1.0) (0.29.15)
Building wheels for collected packages: cyrtd
Building wheel for cyrtd (PEP 517) ... error
ERROR: Command errored out with exit status 1:
...
from Cython.Build import cythonize
ModuleNotFoundError: No module named 'Cython' …Run Code Online (Sandbox Code Playgroud) 我正在运行 Python 3.9.1,并且我已成功安装诗歌版本 1.1.4。当我尝试添加请求 ( $ poetry add requests) 时,我面临
RuntimeError
Poetry could not find a pyproject.toml file in C:\...
Run Code Online (Sandbox Code Playgroud)
我刚刚安装了它,我不确定我是否错过了一些东西。有人可以建议吗?
设置项目并使用尚未作为系统范围二进制文件安装的早期版本的 Python 的过程是什么?
\n理想情况下,poetry add <package>应该安装到以前版本的 python,并且poetry shell应该打开一个具有正确版本的虚拟环境。
我努力了:
\nmkdir myproj\ncd myproj\n\neval "$(pyenv init -)"\npyenv install 3.8.9\npyenv local 3.8.9\n\npoetry init --no-interaction --python="3.8.9"\npoetry env use 3.8.9\npoetry add numpy\n\necho \'\nimport sys\nprint(sys.version)\n\nimport numpy\nprint(numpy.__version__)\n\' > main.py\n\npoetry shell\neval "$(pyenv init -)"\npython main.py\nRun Code Online (Sandbox Code Playgroud)\n但这给出了:
\n3.8.9 (default, May 1 2021, 22:43:00)\n[GCC 10.2.0]\nTraceback (most recent call last):\n File "main.py", line 5, in <module>\n import numpy\nModuleNotFoundError: No module named \'numpy\'\nRun Code Online (Sandbox Code Playgroud)\n...表明python运行的版本正确(如预期),但该包未安装到 python 3.8.9。的确:
\xce\xbb ls "$(poetry …Run Code Online (Sandbox Code Playgroud) 我已经完全卸载并重新安装了诗歌,使用:
POETRY_UNINSTALL=1 bash -c 'curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python'
Run Code Online (Sandbox Code Playgroud)
然后我使用以下命令重新安装它:
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
Run Code Online (Sandbox Code Playgroud)
但它并没有解决问题。然后我 # 进行诗歌配置
export PATH="$HOME/.poetry/bin:$PATH"
Run Code Online (Sandbox Code Playgroud) 我有一个 pyproject.toml:
...
[[tool.poetry.source]]
name = "REPO_NAME"
url = "https://gitlab.com/SOME_ADDRESS"
secondary = true
Run Code Online (Sandbox Code Playgroud)
poetry install当尝试使用诗歌( / )安装项目时,poetry update我得到:
更新依赖关系 解决依赖关系... (14.3s)
重定向过多
超过 30 次重定向。
最小工作示例:https://gitlab.com/hynek.blaha/debug-docker-poetry/-/tree/master
\n我一直在使用 Poetry 和来自内部 PyPI 注册表的 Python 包构建 Docker 镜像。由于我们的项目位于私有 GitLab 存储库中,并且内部包不是绝密的,因此我们将诗歌凭证直接存储在pyproject.toml.
2022 年 8 月 24 日,我们所有的 Docker 构建在安装内部包时开始失败:
\n\xe2\x80\xa2 Installing til-bigquery (0.3.4)\n\n HTTPError\n\n 401 Client Error: Unauthorized for url: https://gitlab.com/api/v4/projects/38869805/packages/pypi/files/7a4731d831d4b37262481002271e359f96017570e9480ef16c89489e0b41252f/til_bigquery-0.3.4-py3-none-any.whl#sha256=7a4731d831d4b37262481002271e359f96017570e9480ef16c89489e0b41252f\n\n at /usr/local/lib/python3.9/site-packages/requests/models.py:1021 in raise_for_status\n 1017\xe2\x94\x82 f"{self.status_code} Server Error: {reason} for url: {self.url}"\n 1018\xe2\x94\x82 )\n 1019\xe2\x94\x82 \n 1020\xe2\x94\x82 if http_error_msg:\n \xe2\x86\x92 1021\xe2\x94\x82 raise HTTPError(http_error_msg, response=self)\n 1022\xe2\x94\x82 \n 1023\xe2\x94\x82 def close(self):\n 1024\xe2\x94\x82 \n 1025\xe2\x94\x82 called the underlying ``raw`` object must not …Run Code Online (Sandbox Code Playgroud) 我有一个使用 Python 3.10.2 的基于诗歌的 Django 项目。我想升级项目以使用Python 3.11.0。
这样做的正确方法是什么?
我应该核对诗歌.lock 然后将 pyproject.toml 更新为
[tool.poetry.dependencies]
python = "^3.11"
Run Code Online (Sandbox Code Playgroud)
轻松升级到较新版本的 Python 的能力似乎应该是一个核心功能,但我没有看到自动执行该过程的命令。
我有一个简单的 python 包,我们称之为my_package。
它的文件位于src/python/my_package.\n此外,存储库根目录中有一个data文件夹,该文件夹应包含在my_package.
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 python\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_package\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 stuff.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\nRun Code Online (Sandbox Code Playgroud)\n我没有找到任何方法来配置诗歌,它data以正确的方式包含附加文件夹。
这是我的pyproject.toml
[tool.poetry]\nname = "my-package"\nversion = "2.10.0" \n\npackages = [\n { include = "my_package", from = "src/python" }\n]\n\n# This does not work! It puts the `data` folder into site-packages/data instead of site-packages/my_package/data\ninclude = [\n { path = "data", format = ["sdist", "wheel"] }\n]\n\n[build-system]\nrequires = ["poetry-core>=1.0.0"]\nbuild-backend = "poetry.core.masonry.api"\nRun Code Online (Sandbox Code Playgroud)\n我还使用预构建脚本找到了以下解决方案:\n https://github.com/python-poetry/poetry/issues/5539#issuecomment-1126818974 …
python-poetry ×10
python ×7
cython ×1
django ×1
docker ×1
pipenv ×1
pyenv ×1
pypi ×1
python-wheel ×1
upgrade ×1