首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >诗中没有安装程序包

诗中没有安装程序包
EN

Stack Overflow用户
提问于 2022-03-08 10:05:41
回答 2查看 1.5K关注 0票数 0

我是“诗歌”的新手,我有一个问题,我在网上找不到太多的信息。我的诗歌被认为创造了一个虚拟的python3.9的env,它做到了。这是我在poetry env info命令中得到的

代码语言:javascript
复制
Virtualenv
Python:         3.9.10
Implementation: CPython
Path:           /home/..../.venv
Valid:          True

System
Platform: linux
OS:       posix
Python:   /usr

当我输入poetry shell (然后是python )时,我确实进入了python3.9,并且能够导入安装的包。但奇怪的是。当我试图检查一个已安装的软件包时,我得到的是:

代码语言:javascript
复制
>>> import XXX.python_utils as utils
>>> utils
<module 'XXX.python_utils' from '/home/X/.local/lib/python3.9/site-packages/XXX/python_utils/__init__.py'>

我确实在我的机器上安装了一个实际的python3.9,但是诗歌应该在虚拟环境中安装这个包,而不是实际的python3.9 site_packages,对吗?然后,我尝试将python3.9安装在我的机器上,而不是虚拟env,包仍然可以导入。其结果与上述相同。

然后我再次检查了.venv/lib/python3.9/site-packages中的内容,基本上里面什么都没有。我所发现的是一些存储库,其中包含包的名称,并以.dist-info结尾。我不知道那是怎么回事。

我还在poetry shell中尝试了poetry shell,下面是我得到的:

代码语言:javascript
复制
(.venv) XXX@XXX:~/XXX$ which python
/home/.../.venv/bin/python

似乎诗歌确实在文中使用python3.9

最后,每次我运行poetry install时,它都会安装所有的软件包,即使我没有改变pyproject.yaml中的任何内容,poetry.lock似乎也没有任何意义。

EN

回答 2

Stack Overflow用户

发布于 2022-08-06 13:38:34

你可以试试:

代码语言:javascript
复制
poetry env remove python
poetry config virtualenvs.in-project true

然后在项目文件夹中执行以下命令:

代码语言:javascript
复制
poetry shell
poetry add your_lib
poetry install

诗歌env删除python将清理全局python,诗歌配置虚拟alenvs.in project 将告诉诗歌只在项目文件夹中创建.venv。

票数 2
EN

Stack Overflow用户

发布于 2022-03-08 10:12:03

/home/X/.local/lib/python3.9/site-packages

这不是“实际的python3.9站点-包”(即系统python3.9站点-包),而是您的PEP 370每个用户站点包目录。您是否可能已经安装了这些软件包(或其中一些),而没有启用诗歌或普通的虚拟环境?它很有可能,诗歌决定不安装依赖的项目to,这是在您的本地网站-软件包已经可以很好地获得。

您可以使用pip list --user,而无需激活virtualenv来查看在该本地目录中安装了哪些包,并使用例如pip uninstall卸载它们。

如果您将该目录移开(例如,将python3.9重命名为python3.9-temporarily-out-of-the-way)并要求诗歌安装软件包,您还可以看到会发生什么情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71393143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档