Python:两个同名的包;你如何指定加载哪个?

2023-11-24

我有两个软件包,它们安装了具有相同名称的不同软件包。它们都是“包”,因为它们具有顶级setup.py指定的文件package=['foo'] in the setup命令。

如果我安装使用distutils.core,最后一个安装的文件会覆盖前一个文件(但我认为除非 .py 文件都具有相同的名称,否则不会覆盖?)。如果我安装使用setuptools,这两个包被安装到不同的鸡蛋中。

一种选择是显式设置sys.path导入包名之前;这看起来“非Pythonic”并且相当肮脏。

假设我将这两个相同名称的包安装在不同的位置eggs从 setuptools 中,如何指定导入哪个?


设置工具指南提及--多版本 (-m) 从中删除包的开关sys.path完全地。你必须使用pkg_resources.require('package==version')尽早在你的代码中让它修复sys.path。这个建议是什么简易安装使用时总是打印-m.

但是你不能同时导入两者(除非它们被设计为使用命名空间包).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:两个同名的包;你如何指定加载哪个? 的相关文章

随机推荐