【问题标题】:Pypi package not installing on some systemsPypi 软件包未安装在某些系统上
【发布时间】:2020-10-07 17:12:34
【问题描述】:

我创建了一个 python 包,我使用以下命令将其上传到 pipy:

python setup.py sdist bdist_wheel
twine upload dist/*

setup.py 是:

import setuptools
with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
     name='pakk',  
     version='0.3',
     scripts=['pakk.py'] ,
     author="**insert Author**",
     author_email="some_email@mail.ru",
     description="pakk",
     long_description=long_description,
     long_description_content_type="text/markdown",
     url="https://some_website.nice",
     packages=setuptools.find_packages(),
     classifiers=[
         "Programming Language :: Python :: 3",
         "License :: OSI Approved :: MIT License",
         "Operating System :: OS Independent",
     ],
 )

在我的 Windows 10 机器上一切正常,但在其他地方却不行。 例如:

  1. 执行以下操作后在 google colab 中
!pip install pakk
import pakk

我得到错误:

Collecting pakk
  Using cached https://files.pythonhosted.org/packages/aa/70/23a20ee172f26903ffc47b18e56c7274e078ecc4f5251e77f3f0/pakk-0.3-py3-none-any.whl
Installing collected packages: pakk
Successfully installed pakk-0.3
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-111-7f093c9bb12b> in <module>()
      1 get_ipython().system('pip install pakk')
      2 
----> 3 import pakk

ModuleNotFoundError: No module named 'pakk'

虽然它存在于pip list 中,在本例中甚至存在于缓存中。

  1. repl.it 模块甚至没有安装,它冻结在
Package operations: 1 install, 0 updates, 0 removals

  - Installing pakk(0.3)

可能是什么原因?我该如何解决? 在这两个网站中,我从未遇到过此类错误。另外,我不确定依赖项是否被识别和安装,但我可以随时手动编写它们。

【问题讨论】:

  • 代码不只是打印一些文本。它从一个 URL 下载一些 Python 代码并执行它(exec()),这很可疑。
  • @sinoroc 抱歉,链接中的代码会打印文本,您可以检查是否需要。我只是在测试...
  • 很公平,但如果几个月后,此 URL 托管恶意软件代码而不仅仅是 print 代码会怎样?

标签: python python-3.x pypi


【解决方案1】:

我从 PyPI 下载了分发来检查它们。

find_packages() 找不到任何软件包。此外,setup.py 中没有 py_modules。所以没有什么要导入的。

statsmodelier.py 模块被添加为scripts,所以它绝对不是作为可导入模块添加的。如果它应该是一个可导入的模块,那么它应该被添加到py_modules 而不是scripts

【讨论】:

  • 但是如何将其添加为py_modules?以及如何将模块添加到setup.py?我只是在那里导入它们吗?
  • 不知何故 setuptools 文档没有显示它,但在这种情况下它与 distutils 相同:docs.python.org/3/distutils/…
  • 好的,添加py_modules怎么样?
  • 哦,我明白了。我只是写它而不是 scripts 并删除 .py
猜你喜欢
  • 2020-05-19
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 2022-01-15
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多