我有一个文件夹结构
root
|-setup.py
|-src
| |-BDDexample
| |-ExampleSystem.py (contains a class called ExampleSystem)
| |-__init__.py (empty file)
|
|-tests
|-cucumber
|-features
|-steps
|-EnableSystemStepImpl.py
我的setup.py
文件是:
#!/usr/local/bin/python3.6
from setuptools import setup, find_packages
setup(
name="BDDexample",
version="0.2",
packages=find_packages()
)
然后我使用pip3 install .
安装了它。我还尝试过python3 setup.py bdist_wheel
,然后尝试pip3 install dist/BDDexample-0.2-py3-none-any.whl
。
它找到了模块BDDexample,我可以通过键入pip3 list
来测试它,该示例显示了该模块。
但是,在EnableSystemStepImpl.py
中,有以下一行:
from BDDexample.ExampleSystem import ExampleSystem
我得到了错误:
ModuleNotFoundError: No module named 'BDDexample'
当我尝试运行此文件时。
为什么会这样呢!它已安装,所以为什么找不到它。我知道有很多python导入问题,但似乎我做得对。
答案 0 :(得分:0)
没有从ExampleSystem中提取文件BDDexample.ExampleSystem,因为它可能不在PC的直接可访问路径中。请检查它是否在您的C盘等中。
答案 1 :(得分:0)
我找到了答案,这是因为我不应该拥有src
文件夹。我已将目录结构更改为:
root
|-setup.py
|-BDDexample
| |-ExampleSystem.py (contains a class called ExampleSystem)
| |-__init__.py (empty file)
|
|-tests
|-cucumber
|-features
|-steps
|-EnableSystemStepImpl.py
现在可以使用了。
我假设find_packages
找不到BDDexample
模块,因为它位于另一个文件夹中。