解决方案是拥有两个独立的项目:主项目(通常是应用程序)和子项目(通常是库)。主应用程序依赖于该库。
树结构和setup.py
主项目可以具有以下结构:
your_app/
|-- setup.py
ˋ-- src/
ˋ-- your_app/
|-- __init__.py
|-- module1.py
ˋ-- ...
The setup.py
您的申请可以是:
from setuptools import find_packages
from setuptools import setup
setup(
name='Your-App',
version='0.1.0',
install_requires=['Your-Library'],
packages=find_packages('src'),
package_dir={'': 'src'},
url='https://github.com/your-name/your_app',
license='MIT',
author='Your NAME',
author_email='[email protected] /cdn-cgi/l/email-protection',
description='Your main project'
)
你可以注意到:
- 您的应用程序的名称可能与您的包的名称略有不同;
- 该包依赖于“Your-Library”,定义如下;
- 您可以将您的来源放入
src
目录,但它是可选的。很多项目都没有。
子项目可以具有以下结构:
your_library/
|-- setup.py
ˋ-- src/
ˋ-- your_library/
|-- __init__.py
|-- lib1.py
ˋ-- ...
The setup
您的图书馆可以是:
from setuptools import find_packages
from setuptools import setup
setup(
name='Your-Library',
version='0.1.0',
packages=find_packages('src'),
package_dir={'': 'src'},
url='https://github.com/your-name/your_library',
license='MIT',
author='Your NAME',
author_email='[email protected] /cdn-cgi/l/email-protection',
description='Your sub-project'
)
把所有的东西放在一起
为您的应用程序创建一个 virtualenv 并激活它
进入your_library/
目录并运行:
pip install -e .
然后,进去your_app/
目录并运行:
pip install -e .
您现在可以开始编码了。玩得开心!
See the Python 搭便车指南 https://docs.python-guide.org/writing/structure/#structuring-your-project:“构建您的项目”。