How to handle python packages with conflicting names?

拜拜、爱过 提交于 2019-11-27 13:59:18

问题


I'm using two python packages that have the same name.

  • http://www.alembic.io/updates.html
  • https://pypi.python.org/pypi/alembic

Is there a canonical or pythonic way to handle installing two packages with conflicting names? So far, I've only occasionally needed one of the packages during development/building, so I've been using a separate virtualenv to deal with the conflict, but it makes the build step more complex and I wonder if there isn't a better way to handle it.


回答1:


You could use the --target option for pip and install to an alternate location:

pip install --target=/tmp/test/lib/python3.6/site-packages/alt_alembic alembic

Then when you import in python, do the first as usual and for the alt do an import from that namespace like this:

import alembic  # alembic.io version
from alt_alembic import alembic as alt_alembic  # pip version

Then when you're making calls to that one you can call alt_alembic.function() and to the one that isn't in PyPi, alembic.function() My target path has /tmp/test as I was using a virtual env. You would need to replace that path with the correct one for your python installation.




回答2:


how about absolute and relative imports.

https://docs.python.org/2/whatsnew/2.5.html#pep-328-absolute-and-relative-imports



来源:https://stackoverflow.com/questions/27532112/how-to-handle-python-packages-with-conflicting-names

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!