【问题标题】:Installed new Pypi module looks OK but not recognised by python?安装的新 Pypi 模块看起来不错,但 python 无法识别?
【发布时间】:2014-04-03 00:03:25
【问题描述】:

我在使用 PyPi 上的 Python 包时遇到问题。对于此类问题,我看不到任何已回答的问题(尽管我发现了一些未回答的问题),所以这里是:

我的 BrickPython 包如下所示:

BrickPython
    + BrickPython
        + __init__.py
        + Scheduler.py
    + Other test and example modules at top level.

该模块有一个工作 setup.py;包 BrickPython 似乎已正确安装在 PyPi 上(使用 python setup.py sdist upload);和

sudo pip install BrickPython

成功完成。但是,当我尝试使用它时,我看到了错误:

>>> import BrickPython
>>> BrickPython.Motor
Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Motor'

据我所知,我正在遵循类似于http://guide.python-distribute.org/creation.html#directory-layout 的设置(因为所有测试代码都在不同的位置),所以我想知道可能出了什么问题。尝试这个很痛苦,因为显然我必须发布一个新版本来测试我所做的每一个更改。

1) 如何在不安装 PyPi 的情况下尝试安装 egg 包?

2) 我应该怎么做才能让它工作?

  • 查尔斯

【问题讨论】:

  • 你有BrickPython/BrickPython/Motor.py 文件吗?你在BrickPython/BrickPython/__init__.py 中导入BrickPython.Motor 吗?
  • “如何在不安装 PyPi 的情况下尝试安装 egg 包?” 在带有 setup.py 的目录中运行 pip install -e .
  • 啊哈,太棒了!谢谢J.F.

标签: python pypi sdist


【解决方案1】:

试试这个

from BrickPython import Motor

m = Motor.Motor(<port>, [scheduler])

【讨论】:

  • 是的 - 这行得通。我对 Python 导入语法的误解。通常它会变成from BrickPython.Motor import Motor ... m=Motor(0)。非常感谢! - 查尔斯
猜你喜欢
  • 2021-11-19
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
相关资源
最近更新 更多