![](/img/trans.png)
[英]Atom 'script' package gives me ModuleNotFoundError with Python
[英]Installed python package gives ModuleNotFoundError
我推送了一个包到 pypip 然后安装成功。 由于我在 anaconda 上,我可以执行conda list
并确认我的软件包已安装在基本环境中。
接下来我想使用它:
from epicprint import Print
但这会引发 ModuleNotFoundError: No module named 'epicprint'
我假设我的包结构有一些错误。 它确实在我的 test.py 文件中工作,这很奇怪。 请参阅以下包 repo 中的文件:
import os
import sys
# Glorious print with color and grouping
class Print(object):
...
from Print import Print
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name='epicprint',
version='0.1',
author="abc",
author_email="abc@abc.com",
description="Custom print with superpowers",
url="https://github.com/ajthinking/print",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
)
from Print import Print
print = Print()
print.info("Welcome").group()
print.success("Now we can:", ["Indent stuff", "Use colors", "Attach semantic to the print statements"])
print.warning("Nothing more to say")
print.reset().fail("Ending with a fail message. Bye.")
所有文件都在 repo 的根目录中,除了在 dist 文件夹中找到的一个 .whl 和一个 .tar.gz 以及运行安装脚本后的 build 和 egg-info 文件夹。
├── LICENSE
├── Print.py
├── README.md
├── __init__.py
├── __pycache__
│ └── Print.cpython-37.pyc
├── build
│ └── bdist.macosx-10.7-x86_64
├── dist
│ ├── epicprint-0.1-py3-none-any.whl
│ └── epicprint-0.1.tar.gz
├── epicprint.egg-info
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ ├── dependency_links.txt
│ └── top_level.txt
├── setup.py
└── test.py
我哪里做错了?
您没有任何包目录(带有__init__.py
的子目录),因此setuptools.find_packages()
返回一个空列表,因此您的发行版不包含也不安装任何 python 模块或包。
要么将Print.py
作为独立模块安装:
setuptools.setup(
…
# packages=setuptools.find_packages(),
py_modules=['Print.py'],
…
)
或者将Print.py
和__init__.py
移动到子目录epicprint/
然后setuptools.find_packages()
返回['epicprint']
包,发行版会捕获它。
在后一种情况下,您的test.py
必须进行调整:
from epicprint.Print import Print
您是否想要epicprint/
包中的test.py
epicprint/
您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.