我正在开发一个Python包,该包具有以下结构
m2too
├── bin
├── m2too
│ ├── m2too.egg-info
│ │ ├── dependency_links.txt
│ │ ├── PKG-INFO
│ │ ├── requires.txt
│ │ ├── SOURCES.txt
│ │ └── top_level.txt
│ ├── __pycache__
│ │ ├── aero.cpython-39.pyc
│ │ ├── appo.cpython-39.pyc
│ │ ├── dataprep.cpython-39.pyc
│ │ ├── fitter.cpython-39.pyc
│ │ ├── __init__.cpython-39.pyc
│ │ └── stat.cpython-39.pyc
│ ├── aero.py
│ ├── appo.py
│ ├── dataprep.py
│ ├── fitter.py
│ ├── __init__.py
│ ├── run.py
│ └── stat.py
├── CHANGES.txt
├── LICENSE.txt
├── README.txt
├── setup.cfg
└── setup.py
程序包名称为m2too
。从项目基本文件夹m2too
,我可以运行pip install -e .
,它运行良好,从该目录中我可以运行所有脚本,从任何Python解释器中运行import m2too
,等等。
但是,每当我cd
到系统中的任何其他地方(包括m2too/m2too
(时,任何import m2too
语句都会导致以下结果:
>>> import m2too
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'm2too'
我不明白为什么会这样。
编辑我的setup.py
如下所示:
from setuptools import setup
setup()
我的setup.cfg
看起来像这样:
[metadata]
name = m2too
version = 0.1.0
author = Some Name
author_email = somename@somewhe.re
description = A package to do stuff
[options]
package_dir =
= m2too
packages = find:
python_requires = >=3.6
install_requires =
numpy
matplotlib
pandas
scipy
[options.packages.find]
where = m2too
请阅读Python打包文档。
通常,像这样的问题可以通过拥有一个虚拟环境(venv(来解决,该虚拟环境具有特定的Python解释器设置,您可以在系统中的任何地方激活它。