如何处理名称冲突的python包?
我正在使用两个同名的python包如何处理名称冲突的python包?,python,namespaces,setuptools,alembic,Python,Namespaces,Setuptools,Alembic,我正在使用两个同名的python包 是否有一种规范的或python的方法来处理安装两个名称冲突的软件包?到目前为止,我只是偶尔在开发/构建过程中需要一个包,所以我一直在使用一个单独的virtualenv来处理冲突,但它使构建步骤更加复杂,我想知道是否有更好的方法来处理它。绝对导入和相对导入如何。 您可以为pip使用--target选项,并将其安装到其他位置: pip install --target=/tmp/test/lib/python3.6/site-packages/alt_al
是否有一种规范的或python的方法来处理安装两个名称冲突的软件包?到目前为止,我只是偶尔在开发/构建过程中需要一个包,所以我一直在使用一个单独的virtualenv来处理冲突,但它使构建步骤更加复杂,我想知道是否有更好的方法来处理它。绝对导入和相对导入如何。 您可以为pip使用--target选项,并将其安装到其他位置:
pip install --target=/tmp/test/lib/python3.6/site-packages/alt_alembic alembic
然后,在python中导入时,像往常一样执行第一个操作,对于alt,从该名称空间进行导入,如下所示:
import alembic # alembic.io version
from alt_alembic import alembic as alt_alembic # pip version
然后,当您调用该函数时,可以调用alt_alembic.function(),也可以调用PyPi中没有的函数,alembic.function()
当我使用虚拟环境时,我的目标路径为/tmp/test。您需要将该路径替换为适合python安装的正确路径 我认为Virtualenv是最好的方法。使用相对导入可以处理内部模块或子包与其他顶级模块和包的冲突,但如果两个顶级包的名称相同,则不会有帮助。那么我们应该使用Virtualenv