如何使 python 从本地目录导入同名模块而不是站点包?

How to make python import an identically named module from the local directory instead site-packages?

我有点困惑 python 如何区分安装在站点包中的模块和本地目录中的模块(如果它们具有相同的名称)以及进行 python 导入的最佳方法是什么从本地目录而不是安装的模块。

基本上我有一个命令行应用程序,我用它来安装 setup.py

setup(
      name='app',
      version='0.5.2',
      packages=find_packages(),
      entry_points={
          'console_scripts': [
              'katana = app.main:main'
          ]
      }
)

我遇到的问题是,当我从源文件夹 运行 main.py 执行以下操作时:

import app.script_A

而不是 src/scriptA.py(与 main.py 相同的文件夹)它从

导入已安装的模块
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/app-0.5.2-py3.5.egg!/app/scriptA.py

那么解决这个问题的正确方法是什么,如果我仍然希望能够使用 setuptools 在系统范围内安装模块,但是当 运行手动从源文件夹中安装 main.py 时我希望它从该文件夹而不是库中导入所有模块?

如果 scriptA.py 与 main.py 在同一个目录中,你就不能 import .scriptA 吗?

. 是一个快捷方式,告诉 python 在 PYTHONPATH

的其余部分之前搜索当前包