小编Ped*_*ues的帖子

导入错误:无法导入名称(未知位置)

项目结构

\n
my_package\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_package\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_module.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n
Run Code Online (Sandbox Code Playgroud)\n

该模块my_module.py有一个func我试图导入的函数。

\n

setup.py文件具有以下内容。

\n
my_package\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_package\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_module.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n
Run Code Online (Sandbox Code Playgroud)\n

导入API

\n

我正在安装该软件包:

\n
virtualenv --python=/usr/bin/python3.8 venv\nsource venv/bin/activate\npython my_package/setup.py install\n
Run Code Online (Sandbox Code Playgroud)\n

然后使用以下命令导入它:

\n
from setuptools import setup, find_packages\n\nsetup(\n    name=\'my_package\',\n    packages=find_packages(where=\'my_package\'),\n    version=\'1.0\'\n)\n
Run Code Online (Sandbox Code Playgroud)\n

但是,第二次导入失败,并显示:

\n
ImportError: cannot import name \'my_module\' from \'my_package\' (unknown location)\n
Run Code Online (Sandbox Code Playgroud)\n

此外,运行dir(my_package)显示该my_module名称确实未导入。\n[\'__doc__\', \'__file__\', \'__loader__\', \'__name__\', \'__package__\', \'__path__\', \'__spec__\']

\n

SO类似问题

\n

如果解决方案证明不成功,则无法导入 setup.py …

python distutils

6
推荐指数
1
解决办法
5万
查看次数

标签 统计

distutils ×1

python ×1