ModuleNotFoundError:pip 安装后没有名为 的模块

2023-11-24

我在 python 包分发中迈出了第一步。
不幸的是,我有ModuleNotFoundError从 pip 安装成功后。

我的目录布局非常简单:

maindir
   |- setup.py
   |- pysoft
         |- __init__.py
         |- main.py
         |- pylib.py

main.py:

import pylib


def main():
    print("main program")
    pylib.libfunc()


if __name__ == '__main__':
    main()

pylib.py:

def libfunc():
    print("lib func")

设置.py:

import setuptools


setuptools.setup(
    name='pysoft',
    version='0.0.21',
    author='als',
    author_email='[email protected]',
    description='deploy tester',
    py_modules=['pylib'],
    packages=setuptools.find_packages(),
    python_requires='>=3.6',
    entry_points={
        'console_scripts': [
            'pysoft = pysoft.main:main',
        ],
    },
)

我打包并上传到测试.pypi.org:

python3 setup.py sdist bdist_wheel
python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

我设置并开始新的virtualenv并安装我的包:

 python3 -m pip install -i https://test.pypi.org/simple/ pysoft

然后我尝试运行它,但出现错误:

pysoft 
Traceback (most recent call last):
  File "/home/fat/buff/tt/bin/pysoft", line 5, in <module>
    from pysoft.main import main
  File "/home/fat/buff/tt/lib/python3.6/site-packages/pysoft/main.py", line 1, in <module>
    import pylib
ModuleNotFoundError: No module named 'pylib'

你能找出我哪里错了吗?


You do import pylib仿佛说pylib是顶级模块或包。但它不是——它是包的子模块pysoft。为了正确导入,请执行以下操作:

from pysoft import pylib

py_modules=['pylib']在你的setup.py被忽略,因为setuptools找不到顶层pylib.py. But packages=setuptools.find_packages()作品并包括pysoft打包成发行版。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ModuleNotFoundError:pip 安装后没有名为 的模块 的相关文章

  • 如何让Python的socket服务器永远运行

    我有这段代码创建了一个简单的Python套接字服务器 但是每次客户端断开连接时它都会关闭 如何让它永远运行 import socket HOST PORT 8000 s socket socket socket AF INET socket
  • 管理 Tweepy API 搜索

    如果这是对之前在其他地方回答过的问题的粗略重复 请原谅我 但我不知道如何使用 tweepy API 搜索功能 是否有任何有关如何使用搜索推文的文档api search 功能 有什么方法可以控制返回的推文数量 结果类型等功能 由于某种原因 结
  • 顶级棉花糖模式验证

    From 棉花糖 validation http marshmallow readthedocs org en latest quickstart html validation 我知道我可以在架构中的特定字段上注册验证器 如果验证器失败
  • sphinx 中的分组方法文档字符串

    是否可以使用 sphinx 的 autodoc 功能将多个方法文档字符串分组 以便将它们列在一起 class Test object def a self A method of group foo def b self A method
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • Python Pandas 从宽到长的格式更改以及列标题拆分

    我有一个包含以下列标题和行示例的表 Subject Test1 Result1 Test1 Result2 Test2 Result1 Test2 Result2 0 John 10 0 5 20 0 3 我想将其改造成 Subject l
  • 为什么我在将数据上传到数据库时不断看到“正在重置断开的连接”?

    我正在通过 REST API 将数亿个项目从 Heroku 上的云服务器上传到 AWS EC2 中的数据库 我正在使用 Python 并且经常在日志中看到以下 INFO 日志消息 requests packages urllib3 conn
  • 如何在返回的 AJAX 调用上使用 django 模板标签?

    我有一个简单的 AJAX 脚本 它在名为的搜索字段中获取输入的字符串AJAXBox并调用一个视图函数 该函数使用过滤器查询数据库并返回与输入参数匹配的所有 User 对象的查询集 当我使用 django 模板标签迭代查询集时 它不起作用 我
  • 获取 HTML 代码的结构

    我正在使用 BeautifulSoup4 我很好奇是否有一个函数可以返回 HTML 代码的结构 有序标签 这是一个例子 h1 Simple example h1 p This is a simple example of html page
  • 使用 .map() 在 pandas DataFrame 中高效创建附加列

    我正在分析形状与以下示例类似的数据集 我有两种不同类型的数据 abc数据和xyz data abc1 abc2 abc3 xyz1 xyz2 xyz3 0 1 2 2 2 1 2 1 2 1 1 2 1 1 2 2 2 1 2 2 2 3
  • Python Flask应用程序无法被网络中的远程计算机访问

    我在本地主机上的 python 上运行了一个简单的 Flask Web 应用程序 Web 应用程序在 127 0 0 1 8000 上运行 但我无法使用 myHostComputerIPaddress 8000 从网络中的远程计算机访问它
  • Python:使用for循环更改变量后缀

    我知道这个问题被问了很多 但到目前为止我无法使用 理解答案 我想改变for循环中变量的后缀 我尝试了 stackoverflow 搜索提供的所有答案 但很难理解提问者经常提出的具体代码 因此 为了清楚起见 我使用一个简单的示例 这并不意味着
  • 如何让 Python 找到 ffprobe?

    I have ffmpeg and ffprobe安装在我的 mac macOS Sierra 上 并且我已将它们的路径添加到 PATH 中 我可以从终端运行它们 我正在尝试使用ffprobe使用以下代码获取视频文件的宽度和高度 impor
  • 使用 plone.api 创建文件的 Python 脚本在设置文件时出现错误 WrongType

    Dears 我正在创建一个脚本python来在Plone站点中批量上传文件 安装是UnifiedInstaller Plone 4 3 10 该脚本读取了一个txt 并且该txt以分号分隔 在新创建的项目中设置文件时出现错误 下面是脚本 f
  • 在Python中将罗马数字转换为整数

    根据 user2486 所说 这是我当前的代码 def romanMap map M 1000 CM 900 D 500 CD 400 C 100 XC 90 L 50 XL 40 X 10 IX 9 V 5 V 4 I 1 return
  • 在Python中打开网站框架或图像

    所以我对 python 相当熟练 并且经常使用 urllib2 和 Cookies 来实现网站自动化 我刚刚偶然发现了 webbrowser 模块 它可以在默认浏览器中打开一个网址 我想知道是否可以从该 url 中仅选择一个对象并打开它 具
  • Python 可以替代 Java 小程序吗?

    除了制作用于物理模拟 如抛射运动 重力等 的教育性 Java 小程序之外 还有其他选择吗 如果你想让它在浏览器中运行 你可以使用PyJamas http pyjs org 这是一个 Python 到 Javascript 的编译器和工具集
  • 需要一个从 yaml 文件中提取内容并输出为 csv 文件的脚本

    我对 python 很陌生 但我很感激您帮助指导我创建一个简单的脚本 该脚本读取一堆 yaml 文件 同一目录中的大约 300 个文件 并从 yaml 文件并将其转换为 csv yaml 文件中内容的示例 code 9313 degrees
  • 将字典写入 csv 时遇到问题,其中键作为标题,值作为列

    我有一本字典 看起来像 mydict foo 1 2 bar 3 4 asdf 5 6 我正在尝试将其写入 CSV 文件 使其看起来像 foo bar asdf 1 3 5 2 4 6 我花了最后一个小时寻找解决方案 我发现的最接近的解决方
  • 使用Python的线程模块调用ctypes函数比使用多处理更快?

    我一生都无法找出这个问题的答案 我编写了一个可以执行数百次繁重计算的脚本 我有一个绝妙的主意 将这些计算任务编写为 C 然后使用 Python 的 ctypes 与它们交互 我心想 我什至可以使用并行性进一步优化它 我最初的方法是使用线程

随机推荐

  • CodeIgniter REST API 库 Ajax PUT 抛出 403 Forbidden

    我让库的其余部分充分工作 只是尝试生成 api 密钥 并在通过 ajax 执行时抛出 403 禁止 status false error Invalid API Key 我追踪到 REST Controller 下的 remap 函数 几乎
  • Java 8 泛型类型方法参考

    我在使用 Java 8 方法引用与泛型类型时遇到问题 我已经简化了我的问题 以明确问题所在 以下代码失败 public static void main String args new Mapper TestEvent setId priv
  • websphere 上的字符编码问题

    我在两个应用程序服务器 websphere 8 0 0 3 中部署的应用程序存在以下问题 这些服务器具有相同的配置文件 为了确定起见 我一度导出了一个配置文件并将其导入到第三个应用程序服务器 并且我在读取和显示以 iso8859 7 编码的
  • 来自 Bloomberg 价格的 IMPORTXML 和正确的 XPath [重复]

    这个问题在这里已经有答案了 我正在尝试从彭博网站获取共同基金的价格 我尝试在 Google 表格中使用 ImportXML 函数 放入 Bloomberg 链接并复制完整的 XPath 但它总是返回 N A 这是我的功能 IMPORTXML
  • Wix修改现有的ini文件

    我试图在 Wix 中修改 ini 文件 如果它不存在 则 msi 不会完成 我该如何检查这个 我真的很想修改它 是的 我查看了其他 stackoverflow 问题 答案以及 google 我正在尝试这个
  • 模板中的 ngIf-else

    我正在尝试加载pictureA or pictureB 我的第一个解决方案是这样的 img src my picture width 180 height 80 img src default picture 但我想用if else如 AP
  • Uri.IsWellFormedUriString 需要更新吗?

    我想我可能发现了 Uri IsWellFormedUriString 方法中的错误 可能是因为它只符合RFC 2396 and RFC 2732标准而不是新的RFC 3986这使得上述两个过时了 我认为发生的情况是任何非 us ascii
  • 从 nsarray 中获取 n 个随机对象(例如 4)

    我有一个很大的 NSArray 名称 我需要从该数组中随机获取 4 条记录 名称 我该怎么做 include
  • 是否有可能在 emgucv 中找到“斑点”区域的边缘?

    我有一个看起来像这样的图像 我想找到黑暗部分的边缘 如下所示 红线是我正在寻找的 我尝试了几种方法 但没有一个有效 所以我希望有一位 emgu 大师愿意帮助我 方法一 将图像转换为灰度 去除噪音并反转 删除任何不太亮的东西 获取精明和多边形
  • startMonitoringSignificantLocationChanges 的替代方案?

    我是iPhone应用程序开发的初学者 但我正在尝试制作一个应用程序 基本上每隔一段时间更新一次您的位置 当它不在前台时 这样我就可以绘制一个人在他 她时去过的地方启动一个应用程序 我以为我可以使用 startMonitoringSignif
  • 无法获取 Gradle 包装器属性

    当我尝试导入项目时出现以下错误 无法从以下位置获取 Gradle 包装器属性 F projects Polyfills cordova platforms android gradle wrapper gradle wrapper prop
  • 如何在 Maven 中使用 BOM 文件?

    我在互联网上进行了大量研究 但没有找到任何简单的解释如何处理BOM使用 Maven 生成文件 问题是我使用 JBoss 7 1 1 并且我想将所有 JBoss 客户端 jar 包含在pom xml JBoss 有一本手册说我应该使用 BOM
  • Python 样条线或其他与 x 轴上的时间一起工作的插值?

    尝试使用非常有用的 pandas 来处理作为时间序列的数据 我现在绊倒了这样一个事实 似乎不存在可以直接对具有 DateTime 作为 x 的数据进行插值 使用样条曲线或类似方法 的库轴 我似乎总是被迫首先转换为某个浮点数 例如 1980
  • SQL Server 2005 非聚集索引死锁

    谁能帮我解决 SQL Server 2005 中的死锁问题 对于一个简单的测试 我有一个表 Book 它有一个主键 id 和一个列名 该主键的默认索引是非聚集的 当两个会话同时运行时就会发生死锁 活动监视器显示第一个会话 step 1 使用
  • Heroku 和 node-cron?

    所以我知道 Heroku 的免费测功机在没有任何流量时会 放松 这会如何影响我使用 node cron 模块实现的 cron 作业 当您的空闲测功机处于睡眠状态时 由node cron 安排的作业将不会运行 作为替代方案 您可以使用Hero
  • json.dump() 是否附加到文件?

    我在使用 json dump 时遇到一些意外行为 我正在创建一个文件results 空 然后在代码中使用它 如下所示 with open results r as fp temp try file not empty load existi
  • Double 值返回 0 [重复]

    这个问题在这里已经有答案了 这是一个例子 Double d 1 3 System out println d 这会返回 0 而不是 0 33333 它应该是这样 有人知道吗 那是因为1 and 3被视为integers当你没有另外指定时 所
  • Spray.io:无法编译测试规范

    我有以下服务 trait PingService extends MyHttpService val pingRoutes path ping get complete message gt pong MyHttpService是一个扩展的
  • 使用 OpenCV 在斑点内创建矩形

    输入图像 输出图像 我的图像中有几个彩色斑点 我试图在每种颜色的最大斑点内创建矩形 或正方形 这似乎更容易 我发现了如何创建一个包围单个最大斑点的矩形 的答案 但我不确定如何找到一个适合在斑点内的正方形 它不一定是最大的 它只需要大于某个区
  • ModuleNotFoundError:pip 安装后没有名为 的模块

    我在 python 包分发中迈出了第一步 不幸的是 我有ModuleNotFoundError从 pip 安装成功后 我的目录布局非常简单 maindir setup py pysoft init py main py pylib py m