Python和Docker:如何将软件包添加到sys.path中?

时间:2018-10-10 04:14:35

标签: python package pythonpath sys.path

我已经尝试解决了几次,但是在任何地方都找不到。

让我弄清楚。

我在game中创建C:/Users,它是一个包,由

组成
game/__init__.py
game/sound/__init__.py
game/sound/echo.py

然后我在Pycharm的其他位置执行Test_Module.py

我尝试

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

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

当我导入游戏时,Pycharm中有红色下划线

  

泊坞窗中没有名为“游戏”的模块。

我也做了Interpreter项目来选择路径。但这只是使红色下划线消失而仍然无效

  

没有名为“游戏”的模块

好吧,如果我将game文件移到执行Test_Module.py的文件夹中,那么它完全可以在没有sys.path.append的情况下工作,而只是import game

1 个答案:

答案 0 :(得分:0)

我在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中打开,对您有用吗?

相关问题