0

我创建了一个运行 Python 3.3.2 的新 venv。在尝试createsend通过 pip 安装 Campaign Monitor 的软件包时,它会产生:

  Running setup.py egg_info for package createsend
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/vagrant/3.3.2venv/build/createsend/setup.py", line 5, in <module>
        from createsend import __version__
      File "./createsend/__init__.py", line 1, in <module>
        from createsend import __version__
    ImportError: cannot import name __version__
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/vagrant/3.3.2venv/build/createsend/setup.py", line 5, in <module>

    from createsend import __version__

  File "./createsend/__init__.py", line 1, in <module>

    from createsend import __version__

ImportError: cannot import name __version__

我相信这个包是 Python 3 兼容的。我正在运行最新版本的 pip。谁能解释为什么我会收到此错误?

4

1 回答 1

3

2016 年 10 月 10 日发布的 4.2.0 版开始,此包现在与 Python 3 兼容。2013年的旧答案如下。


不,这个包兼容 Python 3。它使用相对进口:

    from createsend import __version__
  File "./createsend/__init__.py", line 1, in <module>
    from createsend import __version__

第二个createsend应该在哪里createsend/createsend.py。相反,Python 3 将其视为绝对包,递归导入无法找到__version__名称。

于 2013-11-08T19:23:47.827 回答