Мне нужна помощь в следующей ситуации. Существует один проект, требующий двух версий одной библиотеки. Пусть этот lib будет lib, а его версии: libold и libnew. Эти библиотеки недоступны через pypi, т. Е. Каждый из них находится в своей собственной папке. Пусть пути этих папок будут /путь/в/libold и /путь/в/libnew.Использование двух версий одной библиотеки в одном проекте Python
В моем проекте мне нужны экземпляры классов из обеих этих библиотек, но я не могу импортировать их обоих, но только из старой или новой библиотеки.
Я попробовал следующий метод:
import sys
sys.path.insert(0,'path/to/libold')
import lib as libold
sys.path.pop(0)
sys.path.insert(0,'path/to/libnew')
import lib as libnew
После выполнения этой команды, libold и libnew представляет ту же самую библиотеку, libold.
Я также пробовал importlib и imp и получил тот же результат.
Как я могу выполнить импорт двух версий lib?
Почему вы не импортируете только те классы, которые вам нужны? –
Под «lib» вы подразумеваете модуль python или расширение C? Это пакет со многими .py файлами? – tdelaney
Вы тестировали это 'sys.path.insert (0, 'путь/to/libnew'); import lib как libnew' фактически импортирует новую версию? Никакое преступление не предназначено. Мне кажется, что ваш код должен работать, поэтому я просто хочу быть уверенным. – saulspatz