Подтвердить что ты не робот

Принудительный модуль импорта из стандартной библиотеки Python вместо PYTHONPATH по умолчанию

У меня есть пользовательский модуль в одном из каталогов в моем PYTHONPATH с тем же именем, что и один из стандартных модулей библиотеки, так что когда я import module_name, этот модуль загружается. Если я хочу использовать исходный стандартный библиотечный модуль, есть ли способ заставить Python импортировать из стандартной библиотеки, а не из каталога PYTHONPATH, не переименовать пользовательский модуль и изменить каждую ссылку, чтобы указать на новое имя?

4b9b3361

Ответ 1

Идеальное решение было бы переименовать ваш модуль в нечто, что не входит в стандартную библиотеку.

Вы также можете переключить абсолютный импорт на, если вы находитесь на Python 2.5 +:

from __future__ import absolute_import

Ответ 2

Не.

Если вы случайно выбрали имя стандартного библиотечного модуля, измените имя своего модуля, чтобы завершить конфликт.

Ответ 3

Вы можете выбрать модуль, который хотите импортировать с помощью модуля imp:

import imp
mymodule = imp.load_module(name, file, pathname, description) 

Ответ 4

Лучший способ сделать это - разместить проект в одном каталоге, скажем "myproject" , который находится на:

/home/me/myproject

Сделайте символическую ссылку на каталог myproject на один из путей python по умолчанию, например:

# ln -s /home/me/myproject /usr/local/lib/python2.7/dist-packages/myproject

Теперь, когда вы хотите импортировать модуль в свой проект, просто откройте интерпретаторы python.

>>> from myproject.mymodule import *

Он будет работать как шарм.

Последнее, не называйте свой проект таким же, как те, что были найдены в пути python, поэтому при импорте у вас не будет проблем.