导入自制包不重名

Import homemade package without duplicating name

我构建了一个通过 PyPI 分发的包。

上传、下载、安装和包本身都工作正常。我的问题是,为了 运行 我需要调用包名称两次,我想避免这种情况。

我希望它是这样的:

import package_name

package_name.do_stuff()

但它只能这样工作:

from package_name import module_name

module_name.do_stuff()

与其让 package_namemodule_name 相同,或者有两个不同的名称,我只是一个。我想这是因为项目文件夹的结构方式,如下所示:

package_name/
|
- setup.py
- requirements.txt
- package_name/
  |
   - __init.py__
   - module_name.py
- dist
- README etc

我想我想问的是如何构建我的项目文件夹,以便我以以下形式获得整洁的用法:

pip install package_name

import package_name

package_name.do_stuff()

提前致谢

这可以通过在 package_name/package_name/__init__.py 中导入 module_name 来执行。

鉴于您的确切结构,具有:

# package_name/package_name/module_name.py

class Foo:
    pass
# package_name/package_name/__init__.py

from package_name.module_name import Foo

那么你应该可以执行

from package_name import Foo

来自例如package_name/test.py.

你真的需要module_name.py吗?只需将您的代码放入 __init__.py 即可从模块的“顶层”访问它。