如何解决Python中的模块名称冲突?

Pit*_*kos 4 python name-collision

我有一个名为 websocket 的模块。对于这个模块,我想要一些测试,并且对于这些测试,我pip install需要适当的模块。问题是安装的模块与我自己的模块具有完全相同的名称。

项目结构

websocket-server
       |
       |---- websocket.py
       |
       '---- tests
               |
               '---- test.py
Run Code Online (Sandbox Code Playgroud)

测试.py

from websocket import WebSocketsServer  # my module
from websocket import create_connection # installed module
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题:

  • 无需重命名我的模块 ( websocket.py)
  • 不会让我的项目变得丑陋__init__()
  • 需要同时在 Python3 和 2 上运行

Dav*_*veS 5

您可以将模块嵌套在包中吗?

from mywebsocket.websocket import WebSocketsServer # my module
from websocket import create_connection # installed module
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.python.org/2/tutorial/modules.html#packages