首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用系统安装的软件包?

如何使用系统安装的软件包?
EN

Stack Overflow用户
提问于 2020-03-06 11:45:43
回答 1查看 1.8K关注 0票数 3

我正在尝试编写脚本,它应该使用Portage。但是Portage包在PyPi中是不可用的,但是即使它是可用的,也没有任何意义,因为它应该从一些配置好的系统中使用,其中包含包数据库和信任。

我试图编写以下足够丑陋的代码:

代码语言:javascript
复制
[tool.poetry.dependencies]
python = "^3.6"

click = "^7.0-r1"

portage = [
{ markers = "python_version ~= '3.6' and sys_platform == 'linux'", path = "/usr/lib64/python3.6/site-packages/portage/" },
{ markers = "python_version ~= '3.7' and sys_platform == 'linux'", path = "/usr/lib64/python3.7/site-packages/portage/" },
{ markers = "python_version ~= '3.8' and sys_platform == 'linux'", path = "/usr/lib64/python3.8/site-packages/portage/" },
{ markers = "python_version ~= '3.9' and sys_platform == 'linux'", path = "/usr/lib64/python3.9/site-packages/portage/" }
] 

但不起作用。path目录中的代码不被Code视为package。

代码语言:javascript
复制
[ValueError]
Directory /usr/lib64/python3.6/site-packages/portage does not seem to be a Python package

是否有办法这样做,并使用系统作为虚拟环境来运行测试(我知道在主机系统中运行测试不是一个好主意,但是有一个带有已安装端口的码头映像)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 15:59:43

在我看来,这可能与虚拟环境有关,不允许访问系统站点包。如果确实如此,那么请注意,这在今天的诗歌中是不可行的。有一个公开发行,也有一个拉请求

解决办法可能是首先创建不需要诗歌的虚拟环境,例如:

代码语言:javascript
复制
path/to/python3 -m venv --system-site-packages .venv

然后在这个虚拟环境中使用诗歌,因为诗歌不应该创建一个虚拟环境,当它能够检测到它从一个虚拟环境中运行时,它就会使用它。

显然,portage不是一个pip可安装的Python项目,因此指定markerspath很可能毫无用处。此外,site-packages目录通常包含已安装的项目,而path应该指向一个可以下载项目可安装发行版的位置。

我相信,一旦--system-site-packages的问题得到解决,那么迁移就可以被列为一个简单的依赖项portage = "*"

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

https://stackoverflow.com/questions/60563438

复制
相关文章

相似问题

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