微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我不能导入使用 setuptools 创建的包?

如何解决为什么我不能导入使用 setuptools 创建的包?

我正在处理一个项目 (CN_Analysis),我想使用 setuptools 创建我自己的 Python 包 (cn_tools)。我的目标是让它在我的项目文件夹中随处可见。但是,当我尝试从子文件夹(例如 CN_Analysis/Notebooks)导入它时,我得到

(.virtualenvironment) ...:~/Workspace/CN_Analysis/Notebooks$ python3

import cn_tools
ModuleNotFoundError: No module named 'cn_tools'

目录结构如下:

CN_Analysis
├──README.md\
├──requirements.txt\
├──.gitignore\
├──setup.py\
├──.virtualenvironment/\
├──Notebooks/\
├──Data/\
├──cn_tools/\
|  ├──__init__.py\
|  ├──my_tools.py

setup.py 的内容是:

from setuptools import setup,find_packages
setup(name = 'cn_tools',version = '0.1',description = 'This package contains helpful functions for the processing data obtained from Karambola.',packages=find_packages(where='cn_tools'),package_dir={'': 'cn_tools'})

附加信息:
基本套路是

source .virtualenvironment/bin/activate
(.virtualenvironment) python3 setup.py develop

结果

Installed /home/ansgar/Workspace/CN_Analysis/cn_tools\
Processing dependencies for cn-tools==0.1\
Finished processing dependencies for cn-tools==0.1

检查python3

(.virtualenvironment) which python3        

/home/my_name/Workspace/CN_Analysis/.virtualenvironment/bin/python3

如果我在导航到子文件夹(例如 Notebooks/)后从 python 调用 sys.path,它会返回

 ['','/usr/lib/python38.zip','/usr/lib/python3.8','/usr/lib/python3.8/lib-dynload','/home/my_name/Workspace/CN_Analysis/.virtualenvironment/lib/python3.8/site-packages','/home/my_name/Workspace/CN_Analysis/cn_tools']

有人知道为什么我不能导入cn_tools吗?

解决方法

如果我只是使用它就可以了

packages=find_packages()

代替

packages=find_packages(where='cn_tools')

在 setup.py 文件中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。