dir1/
|-- helloworld/
|-- __init__.py
|-- hello.py
|-- setup.py
|-- venv/ #The dir1 virtual environment
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(),
)
C:\Users\TC\temp\editable\dir2>venv\Scripts\activate
(venv) C:\Users\TC\temp\editable\dir2>
(venv) C:\Users\TC\temp\editable\dir2>pip install -e C:\Users\TC\temp\editable\dir1
# app2.py
from helloworld.hello import say_hello
print(say_hello())
python app2.py
现在问题来了。从 app2.py 中找不到 helloworld 包。但是,pip list 确实显示 helloworld 软件包已安装。使用 VS Code,helloword.hello 下方有一条黄色波浪线,表示未找到该包。
这是一个非常简单的设置,用于测试 python 包的可编辑安装。我想知道这个错误是否会产生。或者这是一个错误!操作系统是windows。
如果您遇到同样的错误,请告诉我,否则您将能够使其正常工作。
任何帮助将不胜感激。
注:
您需要
pip install setuptools
在 dir1 venv 中。
我相信问题源于 setup.py 中的 find_packages(),其中包括 venv 目录,导致导入冲突。 要解决此问题,请修改 setup.py 并排除 venv。