【问题标题】:Python3 script installed with pip doesn't work使用 pip 安装的 Python3 脚本不起作用
【发布时间】:2016-10-12 23:09:20
【问题描述】:

我用 python 的“pip”安装了一个应用程序:

sudo pip install EasyBlogger

安装完成,没有错误:

Collecting EasyBlogger
  Using cached EasyBlogger-0.9.0.zip
Requirement already satisfied (use --upgrade to upgrade): pypandoc in /usr/lib/python3.5/site-packages (from EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): google-api-python-client in /usr/lib/python3.5/site-packages (from EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): python-gflags in /usr/lib/python3.5/site-packages (from EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): httplib2 in /usr/lib/python3.5/site-packages (from EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python3.5/site-packages (from pypandoc->EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): oauth2client>=1.4.6 in /usr/lib/python3.5/site-packages (from google-api-python-client->EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): six>=1.6.1 in /usr/lib/python3.5/site-packages (from google-api-python-client->EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): uritemplate>=0.6 in /usr/lib/python3.5/site-packages (from google-api-python-client->EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): pyasn1>=0.1.7 in /usr/lib/python3.5/site-packages (from oauth2client>=1.4.6->google-api-python-client->EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): pyasn1-modules>=0.0.5 in /usr/lib/python3.5/site-packages (from oauth2client>=1.4.6->google-api-python-client->EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): rsa>=3.1.4 in /usr/lib/python3.5/site-packages (from oauth2client>=1.4.6->google-api-python-client->EasyBlogger)
Requirement already satisfied (use --upgrade to upgrade): simplejson>=2.5.0 in /usr/lib/python3.5/site-packages (from uritemplate>=0.6->google-api-python-client->EasyBlogger)
Installing collected packages: EasyBlogger
  Running setup.py install for EasyBlogger
Successfully installed EasyBlogger-0.9.0

但是,当我尝试按以下方式运行 scipt 时:

sudo easyblogger --blogid 6852822618950333369 get

我只收到错误消息:

Traceback (most recent call last):
  File "/usr/bin/easyblogger", line 9, in <module>
    load_entry_point('EasyBlogger==0.9.0', 'console_scripts', 'easyblogger')()
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 568, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2720, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2380, in load
    return self.resolve()
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2386, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.5/site-packages/blogger/__init__.py", line 1, in <module>
    from blogger import EasyBlogger, main
ImportError: cannot import name 'EasyBlogger'

/usr/bin/easyblogger 的内容如下:

#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'EasyBlogger==0.9.0','console_scripts','easyblogger'
__requires__ = 'EasyBlogger==0.9.0'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('EasyBlogger==0.9.0', 'console_scripts', 'easyblogger')()
    )

错误来自 9. line load_entry_point。我该怎么做才能使 easyblogger 脚本正常工作?反正我用的是 Arch Linux。

【问题讨论】:

  • 命令pip 中的sudo pip install EasyBlogger 是操作系统范围的吗?尝试安装新的 virtualenv,激活它并在新创建的 virtualenv 中不使用sudo 重复该流程。很确定在这种情况下一切正常。
  • 不熟悉easyblogger,但一些测试可能会让你走得更远——首先,你能不能做一些类似easyblogger --version 之类的事情来看看它是否安装好。还有“which easyblogger”等。然后,如果这有效,您可以尝试引用不同的 blogid 并查看该问题是否是该特定博客的本地问题?请使用这些结果更新您的问题。换句话说,确保您可以查明安装问题。另外,你为什么在安装和执行命令中使用“sudo”?

标签: python pip blogger gdata pkg-resources


【解决方案1】:

我看到您使用的是 Python 3。看起来 easyblogger 不兼容,即使它使用 pip3 安装。

要看到这一点,请通过添加句点来纠正 __init__.py,因为您是从当前文件夹导入的(python 3 中的新功能):

from .blogger import EasyBlogger, main

现在如果你运行你的命令,你会得到以下结果:

  File "/usr/local/lib/python3.4/dist-packages/blogger/blogger.py", line 424
    print postId
               ^
SyntaxError: Missing parentheses in call to 'print'

现在您需要决定是否修复软件包!只是为了确保在 Python 3 中安装:

sudo apt-get -y install python3-setuptools
sudo easy_install3 pip
sudo pip3 install EasyBlogger

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2021-10-24
    • 2022-01-25
    • 1970-01-01
    • 2021-05-29
    • 2018-11-20
    相关资源
    最近更新 更多