为什么找不到导入的可编辑Python包?

问题描述 投票:0回答:1
  1. dir1目录结构:
dir1/
|-- helloworld/
    |-- __init__.py
    |-- hello.py
|-- setup.py
|-- venv/ #The dir1 virtual environment
  1. dir2目录结构:
dir2/
|-- app2.py
|-- venv/ #The dir2 virtual environment
# hello.py
def say_hello():
    return "Hello, World!"
# setup.py
from setuptools import setup, find_packages

setup(
    name='helloworld',
    version='0.1',
    packages=find_packages(),
)
  1. 激活 dir2 venv
C:\Users\TC\temp\editable\dir2>venv\Scripts\activate
(venv) C:\Users\TC\temp\editable\dir2>
  1. 以可编辑模式将 helloworld 包安装到 dir2 venv。
(venv) C:\Users\TC\temp\editable\dir2>pip install -e C:\Users\TC\temp\editable\dir1
  1. 从app2.py导入helloworld包
# app2.py
from helloworld.hello import say_hello

print(say_hello())
  1. 运行app2.py
python app2.py

现在问题来了。从 app2.py 中找不到 helloworld 包。但是,pip list 确实显示 helloworld 软件包已安装。使用 VS Code,helloword.hello 下方有一条黄色波浪线,表示未找到该包。

这是一个非常简单的设置,用于测试 python 包的可编辑安装。我想知道这个错误是否会产生。或者这是一个错误!操作系统是windows。

如果您遇到同样的错误,请告诉我,否则您将能够使其正常工作。

任何帮助将不胜感激。

注:

您需要

pip install setuptools
在 dir1 venv 中。

python package
1个回答
0
投票

我相信问题源于 setup.py 中的 find_packages(),其中包括 venv 目录,导致导入冲突。 要解决此问题,请修改 setup.py 并排除 venv。

© www.soinside.com 2019 - 2024. All rights reserved.