首页 > 解决方案 > 可安装 python 模块的最小示例

问题描述

假设我有一个包含一些 .py 文件的目录,以及一些包含其他 .py 文件的目录

该目录称为 my_program

my-program
 -- dir1
    -- file.py
 -- dir2

我希望能够从任何目录中使用 my_program 定义的模块,比如这样做

>>> import my_program
>>> myprogram.dir1.file.function()

或通过做

>>> import my_program.dir1.file
>>> file.function()

我还想使用 pip “安装”我的模块以实现系统范围内的可访问性

标签: python-3.xpipsetuptoolssetup.pypython-packaging

解决方案


下面是一个最小的工作示例

my_packs/
├── foo
│   ├── code.py
│   └── __init__.py
└── setup.py

这里 code.py 包含一些有用的功能,而 setup.py 包含

from setuptools import find_packages, setup
setup(name="foo",
      version="0.1",
      description="A foo utility",
      author="Ewen Cheslack-Postava",
      author_email='me@ewencp.org',
      platforms=["any"],  # or more specific, e.g. "win32", "cygwin", "osx"
      license="BSD",
      url="http://github.com/ewencp/foo",
      packages=find_packages(),
      )

init 是一个空文件

该软件包可以安装

python setup.py develop

或者

pip install -e .

然后,从任何目录,它运行如下:

python -c 'import foo.code; print(foo.code.useful_function())'

示例改编自:https ://ewencp.org/blog/a-brief-introduction-to-packaging-python/index.html


推荐阅读