Как импортировать модуль пакета сайта вместо одного в текущем каталоге с тем же именем (python 3.x)? - PullRequest
0 голосов
/ 18 января 2020

Я большой пользователь библиотеки pandas. Чтобы сохранить полезные пользовательские вспомогательные функции, связанные с библиотекой pandas, я решил создать собственный проект (my_proj) и модуль pandas .py. Сейчас я занимаюсь разработкой другого пользовательского модуля, связанного с протоколом s sh в том же проекте.

Модули создаются с помощью pycharm. Структура проекта следующая:

my_proj/src/my_proj/pandas.py
my_proj/src/my_proj/ssh.py

Все в порядке и работает правильно. Когда я хочу использовать pandas пакета сайта, я выполняю import pandas as pd, когда я хочу использовать my_proj pandas, чем я использую from my_proj import pandas as mypd.

Но теперь в s sh .py I нужен пакет сайта pandas (не my_proj pandas). Если в s sh .py я использую import pandas as pd, pycharm импортирует my_proj/src/my_proj/pandas.py вместо pandas из пакетов сайта.

Одним из решений будет переименование my_proj pandas .py в другое , но я бы хотел этого избежать, если это возможно.

Есть ли другой способ запретить загрузку библиотеки из текущего каталога и импорт ее из пакетов сайта?

Какие у меня варианты?

Ответы [ 2 ]

1 голос
/ 18 января 2020

В конце я буду использовать следующую процедуру:

import sys
old_syspath = sys.path
sys.path = [path for path in sys.path if 'customspace' not in path]

import pandas as pd
sys.path = old_syspath

По сути, я удаляю 'customspace' из sys.path, чем импортирую pandas и помещаю sys.path обратно, как это было.

Я думаю, что это минимальное изменение, и оно работает.

1 голос
/ 18 января 2020

Я думаю, что вы могли бы python точно сказать, из какого каталога извлечь pandas. EX из my_proj / src / my_proj / s sh import pandas.

...