安装了Python包给人ModuleNotFoundError

问题描述 投票:1回答:1

我把一个包pypip,然后安装成功。因为我的蟒蛇,我可以做conda list并确认我的包被安装在基础环境。

接下来,我想使用它:

from epicprint import Print

但是,这将引发ModuleNotFoundError:无模块名为“epicprint”

我想我有我的封装结构中的一些错误。它在我的test.py文件,这是奇怪的工作。请参阅下面的包回购的文件:

Print.py

import os
import sys

# Glorious print with color and grouping
class Print(object):
    ...

__init __.py

from Print import Print

setup.py

import setuptools
with open("README.md", "r") as fh:
    long_description = fh.read()
setuptools.setup(
     name='epicprint',  
     version='0.1',
     author="abc",
     author_email="[email protected]",
     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",
     ],
 )

test.py

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.")

所有文件都在回购的根源,除了一个.whl和dist文件夹以及运行安装脚本后的构建和蛋的信息文件夹中找到一个名为.tar.gz。

├── 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

我哪里做错了?

python module pip package
1个回答
1
投票

您没有任何包目录(与__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

无论你是想在test.pyepicprint/是你。

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