为什么不能导入客户python包?
我创建了自己的python包,名为为什么不能导入客户python包?,python,linux,pip,python-import,python-wheel,Python,Linux,Pip,Python Import,Python Wheel,我创建了自己的python包,名为jjnsegutils,并将其上传到Pypi网站。但是在我通过pip install jjnsegutils成功安装它之后,我仍然无法导入它。错误显示:ModuleNotFoundError:没有名为“jjnsegutils”的模块。 整个过程的细节如下 包装结构和细节 我的包的结构是: jjnsequtils ├─ __init__.py ├─ myutil ├─ __init__.py ├─ myutil.py ├─ LICENSE ├─
jjnsegutils
,并将其上传到Pypi网站。但是在我通过pip install jjnsegutils
成功安装它之后,我仍然无法导入它。错误显示:ModuleNotFoundError:没有名为“jjnsegutils”的模块。
整个过程的细节如下 包装结构和细节 我的包的结构是:
jjnsequtils
├─ __init__.py
├─ myutil
├─ __init__.py
├─ myutil.py
├─ LICENSE
├─ README.md
├─ setup.py
两个\uuuu init\uuuuu.py
文件为空
在mysetup.py
中:
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="jjnsegutils", # Replace with your own username
version="0.0.10",
author="Jingnan",
author_email="jiajingnan2222@gmail.com",
description="A package of common utilities for Medical images segmentation and evaluation.",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/Ordgod/jjnsegutils",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
)
如何生成包?
我使用命令python setup.py sdist bdist\u wheel
生成分发文件。
记录信息
:
running sdist
running egg_info
writing jjnsegutils.egg-info/PKG-INFO
writing dependency_links to jjnsegutils.egg-info/dependency_links.txt
writing top-level names to jjnsegutils.egg-info/top_level.txt
reading manifest file 'jjnsegutils.egg-info/SOURCES.txt'
writing manifest file 'jjnsegutils.egg-info/SOURCES.txt'
running check
creating jjnsegutils-0.0.10
creating jjnsegutils-0.0.10/jjnsegutils.egg-info
creating jjnsegutils-0.0.10/myutil
copying files to jjnsegutils-0.0.10...
copying README.md -> jjnsegutils-0.0.10
copying setup.py -> jjnsegutils-0.0.10
copying jjnsegutils.egg-info/PKG-INFO -> jjnsegutils-0.0.10/jjnsegutils.egg-info
copying jjnsegutils.egg-info/SOURCES.txt -> jjnsegutils-0.0.10/jjnsegutils.egg-info
copying jjnsegutils.egg-info/dependency_links.txt -> jjnsegutils-0.0.10/jjnsegutils.egg-info
copying jjnsegutils.egg-info/top_level.txt -> jjnsegutils-0.0.10/jjnsegutils.egg-info
copying myutil/__init__.py -> jjnsegutils-0.0.10/myutil
copying myutil/myutil.py -> jjnsegutils-0.0.10/myutil
Writing jjnsegutils-0.0.10/setup.cfg
Creating tar archive
removing 'jjnsegutils-0.0.10' (and everything under it)
running bdist_wheel
running build
running build_py
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
copying build/lib/myutil.py -> build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/myutil
copying build/lib/myutil/__init__.py -> build/bdist.linux-x86_64/wheel/myutil
copying build/lib/myutil/myutil.py -> build/bdist.linux-x86_64/wheel/myutil
running install_egg_info
Copying jjnsegutils.egg-info to build/bdist.linux-x86_64/wheel/jjnsegutils-0.0.10-py3.7.egg-info
running install_scripts
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
creating build/bdist.linux-x86_64/wheel/jjnsegutils-0.0.10.dist-info/WHEEL
creating 'dist/jjnsegutils-0.0.10-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'myutil.py'
adding 'myutil/__init__.py'
adding 'myutil/myutil.py'
adding 'jjnsegutils-0.0.10.dist-info/LICENSE'
adding 'jjnsegutils-0.0.10.dist-info/METADATA'
adding 'jjnsegutils-0.0.10.dist-info/WHEEL'
adding 'jjnsegutils-0.0.10.dist-info/top_level.txt'
adding 'jjnsegutils-0.0.10.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
我如何分发包裹?
我使用命令twine upload dist/*
将dist
中的文件上载到Pypi
如何安装软件包?
我使用命令pip install jjnsegutils
将其安装到由conda创建的名为py37
的环境中。它表明
Collecting jjnsegutils
Downloading jjnsegutils-0.0.10-py3-none-any.whl (11 kB)
Installing collected packages: jjnsegutils
Successfully installed jjnsegutils-0.0.10
然后我在终端中键入$python
,以进入python活动终端。和类型:
>>> import jjnsegutils
但它表明:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'jjnsegutils'
Name: jjnsegutils
Version: 0.0.10
Summary: A package of common utilities for Medical images segmentation and evaluation.
Home-page: https://github.com/Ordgod/jjnsegutils
Author: Jingnan
Author-email: jiajingnan2222@gmail.com
License: UNKNOWN
Location: /home/jjia/.conda/envs/py37/lib/python3.7/site-packages
Requires:
Required-by:
... # other packages
jjnsegutils-0.0.10.dist-info
... # other packages
我通过$ls/home/jjia/.conda/envs/py37/lib/python3.7/site packages
进一步检查了它,它显示:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'jjnsegutils'
Name: jjnsegutils
Version: 0.0.10
Summary: A package of common utilities for Medical images segmentation and evaluation.
Home-page: https://github.com/Ordgod/jjnsegutils
Author: Jingnan
Author-email: jiajingnan2222@gmail.com
License: UNKNOWN
Location: /home/jjia/.conda/envs/py37/lib/python3.7/site-packages
Requires:
Required-by:
... # other packages
jjnsegutils-0.0.10.dist-info
... # other packages
我认为应该有一个名为jjnsegutils
的目录,以及jjnsegutils-0.0.10.dist info
。但我没有看到。这就是我不能导入自己的软件包的原因吗
我确保在整个过程中,虚拟环境始终与名为py37
的环境相同。我用了CentOS,python3.7
期待任何讨论和建议。非常感谢 您应该
导入myutil
packages是应该包含在分发包中的所有Python导入包的列表。我们可以使用find_packages()自动发现所有包和子包,而不是手动列出每个包。在这种情况下,包列表将是example_pkg,因为它是唯一存在的包。