【问题标题】:Cannot import local package installed with `pip install -e .`无法导入使用 `pip install -e 安装的本地软件包。`
【发布时间】:2021-06-15 22:54:07
【问题描述】:

我有一个正在开发的包,还有一些导入这个包的脚本。我正在尝试使用pip install -e . 以开发人员模式安装该软件包,但后来我无法在我的脚本中导入它。 我有以下文件结构,其中singlepixel 是我正在开发的包。

├── setup.py
├── singlepixel
│   ├── acquisition.py
│   ├── metadata.py
│   └── __init__.py
├── scripts
│   ├── script1.py
│   └── script2.py

我的__init__.py 具有以下结构:

from .acquisition import init, setup, acquire, disconnect
from .metadata import MetaData, AcquisitionParameters

而我的setup.py 是:

from setuptools import setup, find_packages

setup(
    name='singlepixel',
    version='0.0.1',
    author='gbm',
    package_dir={"": "singlepixel"},
    packages=find_packages(where="singlepixel"))

据我了解,我应该可以在我的script1.py 中执行一个简单的导入语句,例如from singlepixel import *,但是它不起作用,而是出现以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'singlepixel'

此外,即使我使用的是 anaconda 环境,我似乎也无法在任何地方导入包。据我了解,在使用此环境时,我应该能够在任何地方导入我的包,就像使用 pip install 安装的任何其他包一样。

【问题讨论】:

  • 试试pip install .看看是否安装成功
  • 它安装成功,但我仍然遇到同样的错误。但无论如何,我想用-e 安装以便能够在包中进行更改。

标签: python import pip package


【解决方案1】:

singlepixel/ 中没有包,该目录本身就是一个包。所以删除

package_dir={"": "singlepixel"},

改变

packages=find_packages(where="singlepixel"))

packages=find_packages())

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2019-04-21
    • 2019-12-01
    • 2018-04-12
    • 2019-03-09
    相关资源
    最近更新 更多