Python и докер: как я могу добавить пакеты в sys.path? - PullRequest
0 голосов
/ 10 октября 2018

Я пытался решить это несколько раз, но нигде не могу его найти.

Позвольте мне разобраться.

Я создаю game в C:/Users, чтоэто пакет, состоящий из

game/__init__.py
game/sound/__init__.py
game/sound/echo.py

И я выполняю Test_Module.py в другом месте с помощью Pycharm

Я пытаюсь

>>> sys.path.append("C:/Users/game")

и

>>> sys.path.insert(0, "C:/Users/game")

и когда я импортирую игру, в Pycharm есть красное подчеркивание

В докере не отображается модуль с именем 'game'.

Я сделал проект Interpreter для выборапуть также.Но он просто заставляет красную подчеркивание исчезать и все еще не работает

Нет модуля с именем 'game'

Хорошо, если я переместил файл game в папкугде я выполняю Test_Module.py, он полностью работал без sys.path.append, а только import game.

1 Ответ

0 голосов
/ 10 октября 2018

Я нахожусь в Linux, поэтому я попытался скопировать структуру вашего пакета следующим образом.

mkdir -p game/sound
touch game/__init__.py
touch game/sound/__init__.py
touch game/sound/echo.py

Теперь мой каталог выглядит так

$ tree                                                                                                                                                        
.
└── game
    ├── __init__.py
    └── sound
        ├── echo.py
        └── __init__.py

echo.py содержит это

def hello():
    print("hello")

Если я запускаю интерпретатор python, я могу вызвать функцию

$ python
Python 3.6.4 (default, Jul 17 2018, 18:32:53) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from game.sound import echo
>>> dir(echo)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'hello']
>>> echo.hello()

И она вернется правильно

hello

Я открыл это в pycharm, и это выглядит такон находит все правильно.Если вы следите за тем, что я сделал в отдельной директории и открываете в pycharm, это работает для вас?

...