说我的目录包含一些.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为系统范围的可访问性“安装”我的模块
下面是一个最小的工作示例
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='[email protected]',
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