Импортировать модуль (не файл) из другого пути - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь импортировать модуль (не файл) по другому пути.

По module , я имею в виду, что у меня есть папка с именем Util, содержащая один файл с именем __init__.py.

Использование import Util в файле python на том же уровне, что и папка Util, работает нормально.

Но это не тот случай, когда python файл находится в другом месте.

После этого ответа у меня работает этот фрагмент кода:

import sys,os
sys.path.append(os.path.dirname(__file__)+'the relative path to the python file that I want to import')

Но он работает только тогда, когда я импортирую файл python , а не модуль python.

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 16 июня 2020

Проблема решена:

Из-за того, что я использую Windows, строка os.path.dirname(__file__)+'the relative path to the python file that I want to import' содержит смесь косой черты (/) и обратной косой черты (\).

Простое решение - обеспечить, чтобы выражение (зависящее от ОС) os.path.dirname(__file__) содержало только косые черты:

os.path.dirname(__file__).replace('\\','/')

То же самое касается константной части 'the relative path to the python file that I want to import', конечно, которая при необходимости можно просто исправить вручную (у меня уже была эта только с косой чертой).

...