使用Python的诗歌将最新版本的软件包从工作目录安装到本地环境中

conner.xyz

对于开发工作流程而言,能够将软件包的最新版本构建并安装到本地环境中非常有用。然后,您可以通过将此最新版本导入Python Shell或Jupyter Notebook中进行交互式验证和调试。问题是我最近采用了《诗歌》,现在不知道该怎么做。所以...

如何使用Poetry将最新版本的软件包从当前工作目录安装到本地环境中?

从继续前进 setuptools

过去,我曾经经常使用setuptools它,效果很好。我将setup.py文件放在存储库的根目录中,conda为项目创建一个虚拟环境(假设使用),然后执行...

pip install -e .

从这里,我可以启动python shell,甚至配置jupyter内核以使用此虚拟环境,并且我将始终拥有与之交互的最新版本的软件包

现在setuptools有了局限性,从那以后,我们开始研究诗歌,以更加严格地控制依赖关系并处理更复杂的构建需求等。

问题所在 poetry

如果您查找pip install -e .等效项,poetry将会发现此问题看起来像poetrythinks的创建者那样直接从源代码安装是一个hack,对支持它毫无兴趣。(顺便说一句:我已经尝试过poetry build,然后setup.py像他建议的那样拉出文件,它不起作用)

无需直接链接到源,我愿意运行安装命令来获取软件包的最新版本。当我使用时poetry,它似乎可以工作。

cd root/of/my/project
poetry install
Installing dependencies from lock file

No dependencies to install or update

Installing the current project: my-project (0.4.8) <-- this is the latest version according to the source code in the working directory

问题是,如果我打开Python Shell并尝试导入包,例如,它链接到从远程工件存储库(通过pip install my-package安装的包的最新版本,而不是工作目录中的最新版本。

python
...
>>> import my_package
>>> my_package.__version__
'0.4.7`

现在,即使我用poetry我使用conda环境来指定Python版本为我的项目,然后安装和使用,poetry从内部的。

source activate my-package
(my-package) ... $ poetry update

我也知道poetry(不是很透明)可以代表您创建和管理自己的虚拟环境。我认为这可能不起作用的原因是因为我需要此环境中(而我只在我的 conda环境中,而我正在管理的虚拟环境中poetry安装0.4.8软件包版本)。

我尝试了两者shellrun进行了测试。我得到相同的结果。

poetry shell
Virtual environment already activated: /Users/U6020643/.conda/envs/my-package
Python 3.8.5
...
>>> import my_package
>>> my_package.__version__
'0.4.7`

是什么赋予了?

conner.xyz

解决此问题的方式:我停止使用conda来管理涉及poetry并改为使用的项目的Python版本pyenv

以下是我的工作方式。非常有帮助!

1.删​​除conda为默认环境管理器。

这涉及conda base activate从中删除~/.bash_profile

现在打开一个新的shell并确认没有conda环境前缀,例如(base) ... $

2.pyenv使用自制软件安装

自从我与Homebrew互动以来,已经有一段时间了,并且进行了一两次操作系统升级。需要做一些家务。

brew cleanup # This made it so that brew update didn't take forever
brew update
brew upgrade
brew cleanup

然后...

brew install pyenv

3.安装Python版本

假设您需要/想要Python 3。

pyenv install 3.8.5

4.为您的项目设置本地Python版本

cd your/project/root/
pyenv local 3.8.5

5.安装 poetry

这里

6.使用

现在安装并使用外壳。检查版本->嘿,它起作用了!

cd your/project/root
poetry install
poetry shell
my_package --version  # Package has a CLI.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何安装最新版本的软件包?

来自分类Dev

安装最新版本的软件包

来自分类Dev

无法安装最新版本的软件包

来自分类Dev

无法安装最新版本的python软件包

来自分类Dev

如何在Ubuntu中安装最新版本的软件包?

来自分类Dev

如何使用apt-get安装软件包的最新版本?

来自分类Dev

Ansible lint报告“软件包安装不应使用最新版本”

来自分类Dev

如何使用apt-get安装软件包的最新版本?

来自分类Dev

如何将python软件包从旧版本安装到新版本?

来自分类Dev

如何使用稳定版本的Debian安装最新版本的软件包(例如Apache2)?

来自分类Dev

如何获得通过apt-get安装的软件包的最新版本?

来自分类Dev

pacaur未安装软件包的最新版本

来自分类Dev

在PHP Composer中,配置依赖项以安装仍与当前平台或框架兼容的软件包的最新版本。

来自分类Dev

pip意外地未使用分支/提交固定安装最新版本的git软件包

来自分类Dev

如何在命令行中使用composer安装软件包的最新版本?

来自分类Dev

在使用 HP 提供的 .run 安装程序安装最新版本之前,我是否应该从 Ubuntu 存储库中删除 HPlip 软件包?

来自分类Dev

将所有Meteor软件包更新到最新版本

来自分类Dev

如何在Bower中设置软件包的最新版本?

来自分类Dev

如何在flutter创建模板中获取软件包的最新版本

来自分类Dev

将旧软件包从旧Ubuntu安装到新版本的Ubuntu

来自分类Dev

在 Ubuntu 16.04 上安装带有所有软件包的最新版本的 R

来自分类Dev

为什么即使PyPI上有较新版本,pip也不安装最新版本的软件包?

来自分类Dev

为什么我必须从pom中删除依赖项,然后再将其重新添加并安装以获得最新版本的maven软件包?

来自分类Dev

Ansible:除了foo,bar以外,将所有软件包升级到最新版本

来自分类Dev

如何在构建时将NuGet软件包更新到最新版本,而不更改项目文件

来自分类Dev

回购最新版本过旧时,如何在Fedora 24中更新软件包?

来自分类Dev

如何从npmjs获取我的软件包的最新版本

来自分类Dev

在NuGet上找不到软件包的最新版本

来自分类Dev

PyPI如何确定软件包的最新版本?

Related 相关文章

  1. 1

    如何安装最新版本的软件包?

  2. 2

    安装最新版本的软件包

  3. 3

    无法安装最新版本的软件包

  4. 4

    无法安装最新版本的python软件包

  5. 5

    如何在Ubuntu中安装最新版本的软件包?

  6. 6

    如何使用apt-get安装软件包的最新版本?

  7. 7

    Ansible lint报告“软件包安装不应使用最新版本”

  8. 8

    如何使用apt-get安装软件包的最新版本?

  9. 9

    如何将python软件包从旧版本安装到新版本?

  10. 10

    如何使用稳定版本的Debian安装最新版本的软件包(例如Apache2)?

  11. 11

    如何获得通过apt-get安装的软件包的最新版本?

  12. 12

    pacaur未安装软件包的最新版本

  13. 13

    在PHP Composer中,配置依赖项以安装仍与当前平台或框架兼容的软件包的最新版本。

  14. 14

    pip意外地未使用分支/提交固定安装最新版本的git软件包

  15. 15

    如何在命令行中使用composer安装软件包的最新版本?

  16. 16

    在使用 HP 提供的 .run 安装程序安装最新版本之前,我是否应该从 Ubuntu 存储库中删除 HPlip 软件包?

  17. 17

    将所有Meteor软件包更新到最新版本

  18. 18

    如何在Bower中设置软件包的最新版本?

  19. 19

    如何在flutter创建模板中获取软件包的最新版本

  20. 20

    将旧软件包从旧Ubuntu安装到新版本的Ubuntu

  21. 21

    在 Ubuntu 16.04 上安装带有所有软件包的最新版本的 R

  22. 22

    为什么即使PyPI上有较新版本,pip也不安装最新版本的软件包?

  23. 23

    为什么我必须从pom中删除依赖项,然后再将其重新添加并安装以获得最新版本的maven软件包?

  24. 24

    Ansible:除了foo,bar以外,将所有软件包升级到最新版本

  25. 25

    如何在构建时将NuGet软件包更新到最新版本,而不更改项目文件

  26. 26

    回购最新版本过旧时,如何在Fedora 24中更新软件包?

  27. 27

    如何从npmjs获取我的软件包的最新版本

  28. 28

    在NuGet上找不到软件包的最新版本

  29. 29

    PyPI如何确定软件包的最新版本?

热门标签

归档