如何在系统中的任何位置导入Python包



我正在开发一个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解释器设置,您可以在系统中的任何地方激活它。

相关内容

  • 没有找到相关文章

最新更新