【问题标题】:Why don't these apt-packages behave the same on Ubuntu and Heroku?为什么这些 apt-packages 在 Ubuntu 和 Heroku 上的行为不一样?
【发布时间】:2014-12-11 15:08:18
【问题描述】:

我想在 Heroku 上使用来自 Python 的 ZBar。在普通的 Ubuntu 14.04 服务器上,我可以运行任何一个

sudo apt-get install python-qrtools

-- 或者--

sudo apt-get install zbar-tools
sudo apt-get install libzbar-dev
sudo apt-get install python-zbar

在第一个或最后三个之后,我可以从 Python 执行import zbar。所以使用heroku-buildpack-apt(结合heroku-buildpack-multi)我尝试了这两个选项。在这两种情况下,它似乎都可以正确安装所有内容而没有错误(请参阅下面的安装日志),但在 python 命令行上尝试总是会产生:

>>> import zbar
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named zbar

看到 Heroku 日志(如下)将 Linux 发行版列为 Ubuntu Trusty (=14.04),我不明白为什么它可以在我自己的 14.04 安装中运行,但在 Heroku 上却无法运行。

有人知道为什么这不起作用以及如何在 Heroku 上安装所需的软件包吗?欢迎所有提示!

尝试安装 python-qrtools 时的 Heroku 安装日志:

remote: =====> Downloading Buildpack: https://github.com/ddollar/heroku-buildpack-apt
remote: =====> Detected Framework: Apt
remote: -----> Updating apt caches
remote:        Ign http://archive.ubuntu.com trusty InRelease
remote:        Ign http://archive.ubuntu.com trusty-security InRelease
remote:        Ign http://archive.ubuntu.com trusty-updates InRelease
remote:        Hit http://archive.ubuntu.com trusty Release.gpg
remote:        Hit http://archive.ubuntu.com trusty-security Release.gpg
remote:        Hit http://archive.ubuntu.com trusty-updates Release.gpg
remote:        Hit http://archive.ubuntu.com trusty Release
remote:        Hit http://archive.ubuntu.com trusty-security Release
remote:        Hit http://archive.ubuntu.com trusty-updates Release
remote:        Hit http://archive.ubuntu.com trusty/main amd64 Packages
remote:        Hit http://archive.ubuntu.com trusty/universe amd64 Packages
remote:        Hit http://archive.ubuntu.com trusty/main Translation-en
remote:        Hit http://archive.ubuntu.com trusty/universe Translation-en
remote:        Hit http://archive.ubuntu.com trusty-security/main amd64 Packages
remote:        Hit http://archive.ubuntu.com trusty-security/main Translation-en
remote:        Hit http://archive.ubuntu.com trusty-updates/main amd64 Packages
remote:        Hit http://archive.ubuntu.com trusty-updates/main Translation-en
remote:        Ign http://archive.ubuntu.com trusty/main Translation-en_US
remote:        Ign http://archive.ubuntu.com trusty/universe Translation-en_US
remote:        Reading package lists...
remote: -----> Fetching .debs for python-qrtools
remote:        Reading package lists...
remote:        Building dependency tree...
remote:        The following extra packages will be installed:
remote:          libqrencode3 libv4l-0 libv4lconvert0 libwebp5 libwebpmux1 libzbar0
remote:          python-imaging python-pil python-zbar qrencode
remote:        Suggested packages:
remote:          python-pil-doc python-pil-dbg
remote:        The following NEW packages will be installed:
remote:          libqrencode3 libv4l-0 libv4lconvert0 libwebp5 libwebpmux1 libzbar0
remote:          python-imaging python-pil python-qrtools python-zbar qrencode
remote:        0 upgraded, 11 newly installed, 0 to remove and 81 not upgraded.
remote:        Need to get 0 B/721 kB of archives.
remote:        After this operation, 2,724 kB of additional disk space will be used.
remote:        Download complete and in download only mode
remote: -----> Installing libqrencode3_3.4.2-1_amd64.deb
remote: -----> Installing libv4l-0_1.0.1-1_amd64.deb
remote: -----> Installing libv4lconvert0_1.0.1-1_amd64.deb
remote: -----> Installing libwebp5_0.4.0-4_amd64.deb
remote: -----> Installing libwebpmux1_0.4.0-4_amd64.deb
remote: -----> Installing libzbar0_0.10+doc-9build1_amd64.deb
remote: -----> Installing python-imaging_2.3.0-1ubuntu3_all.deb
remote: -----> Installing python-pil_2.3.0-1ubuntu3_amd64.deb
remote: -----> Installing python-qrtools_1.4~bzr16-1ubuntu1_all.deb
remote: -----> Installing python-zbar_0.10+doc-9build1_amd64.deb
remote: -----> Installing qrencode_3.4.2-1_amd64.deb
remote: -----> Writing profile script
remote: =====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-python.git
remote: =====> Detected Framework: Python
remote: -----> Installing dependencies with pip
remote:        Cleaning up...
remote:
remote: Using release configuration from last framework (Python).
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing... done, 39.4MB
remote: -----> Launching... done, v22
remote:        https://mysterious-man-1234.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.

尝试安装 zbar-toolslibzbar-devpython-zbar 时的 Heroku 安装日志:

remote: =====> Downloading Buildpack: https://github.com/ddollar/heroku-buildpack-apt
remote: =====> Detected Framework: Apt
remote: -----> Updating apt caches
remote:        Ign http://archive.ubuntu.com trusty InRelease
remote:        Ign http://archive.ubuntu.com trusty-security InRelease
remote:        Ign http://archive.ubuntu.com trusty-updates InRelease
remote:        Hit http://archive.ubuntu.com trusty Release.gpg
remote:        Get:1 http://archive.ubuntu.com trusty-security Release.gpg [933 B]
remote:        Get:2 http://archive.ubuntu.com trusty-updates Release.gpg [933 B]
remote:        Hit http://archive.ubuntu.com trusty Release
remote:        Get:3 http://archive.ubuntu.com trusty-security Release [62.0 kB]
remote:        Get:4 http://archive.ubuntu.com trusty-updates Release [62.0 kB]
remote:        Hit http://archive.ubuntu.com trusty/main amd64 Packages
remote:        Hit http://archive.ubuntu.com trusty/universe amd64 Packages
remote:        Hit http://archive.ubuntu.com trusty/main Translation-en
remote:        Hit http://archive.ubuntu.com trusty/universe Translation-en
remote:        Get:5 http://archive.ubuntu.com trusty-security/main amd64 Packages [181 kB]
remote:        Hit http://archive.ubuntu.com trusty-security/main Translation-en
remote:        Get:6 http://archive.ubuntu.com trusty-updates/main amd64 Packages [384 kB]
remote:        Hit http://archive.ubuntu.com trusty-updates/main Translation-en
remote:        Ign http://archive.ubuntu.com trusty/main Translation-en_US
remote:        Ign http://archive.ubuntu.com trusty/universe Translation-en_US
remote:        Fetched 691 kB in 3s (219 kB/s)
remote:        Reading package lists...
remote: -----> Fetching .debs for zbar-tools
remote:        Reading package lists...
remote:        Building dependency tree...
remote:        The following extra packages will be installed:
remote:          libv4l-0 libv4lconvert0 libzbar0
remote:        The following NEW packages will be installed:
remote:          libv4l-0 libv4lconvert0 libzbar0 zbar-tools
remote:        0 upgraded, 4 newly installed, 0 to remove and 81 not upgraded.
remote:        Need to get 0 B/231 kB of archives.
remote:        After this operation, 861 kB of additional disk space will be used.
remote:        Download complete and in download only mode
remote: -----> Fetching .debs for libzbar-dev
remote:        Reading package lists...
remote:        Building dependency tree...
remote:        The following extra packages will be installed:
remote:          libmagick++-dev libmagick++5 libv4l-0 libv4lconvert0 libzbar0
remote:        The following NEW packages will be installed:
remote:          libmagick++-dev libmagick++5 libv4l-0 libv4lconvert0 libzbar-dev libzbar0
remote:        0 upgraded, 6 newly installed, 0 to remove and 81 not upgraded.
remote:        Need to get 0 B/563 kB of archives.
remote:        After this operation, 2,980 kB of additional disk space will be used.
remote:        Download complete and in download only mode
remote: -----> Fetching .debs for python-zbar
remote:        Reading package lists...
remote:        Building dependency tree...
remote:        The following extra packages will be installed:
remote:          libv4l-0 libv4lconvert0 libzbar0
remote:        The following NEW packages will be installed:
remote:          libv4l-0 libv4lconvert0 libzbar0 python-zbar
remote:        0 upgraded, 4 newly installed, 0 to remove and 81 not upgraded.
remote:        Need to get 0 B/225 kB of archives.
remote:        After this operation, 873 kB of additional disk space will be used.
remote:        Download complete and in download only mode
remote: -----> Installing libmagick++5_8%3a6.7.7.10-6ubuntu3_amd64.deb
remote: -----> Installing libmagick++-dev_8%3a6.7.7.10-6ubuntu3_amd64.deb
remote: -----> Installing libqrencode3_3.4.2-1_amd64.deb
remote: -----> Installing libv4l-0_1.0.1-1_amd64.deb
remote: -----> Installing libv4lconvert0_1.0.1-1_amd64.deb
remote: -----> Installing libwebp5_0.4.0-4_amd64.deb
remote: -----> Installing libwebpmux1_0.4.0-4_amd64.deb
remote: -----> Installing libzbar0_0.10+doc-9build1_amd64.deb
remote: -----> Installing libzbar-dev_0.10+doc-9build1_amd64.deb
remote: -----> Installing python-imaging_2.3.0-1ubuntu3_all.deb
remote: -----> Installing python-pil_2.3.0-1ubuntu3_amd64.deb
remote: -----> Installing python-qrtools_1.4~bzr16-1ubuntu1_all.deb
remote: -----> Installing python-zbar_0.10+doc-9build1_amd64.deb
remote: -----> Installing qrencode_3.4.2-1_amd64.deb
remote: -----> Installing zbar-tools_0.10+doc-9build1_amd64.deb
remote: -----> Writing profile script
remote: Using release configuration from last framework (Apt).
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing... done, 39.8MB
remote: -----> Launching... done, v24
remote:        https://mystery-man-1234.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.

【问题讨论】:

  • 可能你调用的python不是系统python?似乎安装发生在系统位置。
  • @kramer65,您应该添加我们昨天讨论的摘要作为答案,它将关闭问题并且可能对遇到相同问题的其他人有用。
  • @PadraicCunningham - 是的,我今天早上已经想这样做了。感谢您的提醒! :)

标签: python linux ubuntu heroku apt


【解决方案1】:

在@PadraicCunningham 的惊人帮助下,我设法找到了解决方案。问题原来是 heroku-buildpack-apt 将东西安装在新创建的文件夹 /app/.apt/ 中,而该文件夹不在 PYTHONPATH 中。

所以我在 heroku 上的 PYTHONPATH 中添加了相关文件夹,如下所示:

heroku config:add PYTHONPATH=/app/.apt/usr/lib/python2.7/dist-packages/

这解决了这个问题。再次非常感谢 PadraicCunningham 帮助我找到这个问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 2013-11-25
    相关资源
    最近更新 更多