python - 无法导入安装有 `pip install -e .` 的本地包

标签 python import pip package

我有一个正在开发的包,还有一些导入这个包的脚本。我正在尝试使用 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 安装的任何其他包一样。

最佳答案

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

package_dir={"": "singlepixel"},

和改变

packages=find_packages(where="singlepixel"))

packages=find_packages())

关于python - 无法导入安装有 `pip install -e .` 的本地包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66692792/

相关文章:

python - 属性错误: 'LanguageServiceClient' object has no attribute 'classify_text'

python - 如何编写一个正则表达式来查找除了 2000、1990 或 1234 等 4 位数字之外的所有内容?

import - 将我的 Angular2 组件转换为 ES6 语法需要什么?

import - Sql Azure Dac 导入/导出服务是 WCF 或 REST 还是其他?

python-3.x - 无法导入 Python 3.9 的 pyodbc

python - 在 GitLab CI YML 文件中使用 pywin32 - 在 pip 安装时出错

python - 使用python将数据从xml存储到数据库

python - distutils - 如何在同一模块中获取扩展模块和 python 模块?

mysql - 将 CSV 文件导入 MySQL 表,仅导入第一行

python - 在 Python 中, `pip -r requirements.txt` 不*递归*安装包?