8

ねえ、ここで古い質問を見てきましたが、私の質問には答えません

libpng をインストールしてから、autopy をインストールしてコンパイル エラーを取得しようとしました。

私はまだpythonが得意ではないので、それらを修正する方法がわかりません。

Ashley:~ ashleyhughes$ sudo easy_install autopy
Searching for autopy
Reading http://pypi.python.org/simple/autopy/
Reading http://www.autopy.org
Best match: autopy 0.51
Downloading http://pypi.python.org/packages/source/a/autopy/autopy-0.51.tar.gz#md5=b92055aa2a3712a9c3b4c874014b450e
Processing autopy-0.51.tar.gz
Running autopy-0.51/setup.py -q bdist_egg --dist-dir /tmp/easy_install-U9uWoj/autopy-0.51/egg-dist-tmp-hdjtIx
clang: warning: argument unused during compilation: '-mno-fused-madd'
clang: warning: argument unused during compilation: '-mno-fused-madd'
clang: warning: argument unused during compilation: '-mno-fused-madd'
clang: warning: argument unused during compilation: '-mno-fused-madd'
clang: warning: argument unused during compilation: '-mno-fused-madd'
src/screengrab.c:48:26: warning: implicit declaration of function
      'CGDisplayBitsPerPixel' is invalid in C99
      [-Wimplicit-function-declaration]
        bitsPerPixel = (uint8_t)CGDisplayBitsPerPixel(displayID);
                                ^
src/screengrab.c:191:2: warning: 'CGLSetFullScreen' is deprecated
      [-Wdeprecated-declarations]
        CGLSetFullScreen(glContext);
        ^
src/screengrab.c:194:2: warning: implicit declaration of function 'glReadBuffer'
      is invalid in C99 [-Wimplicit-function-declaration]
        glReadBuffer(GL_FRONT);
        ^
src/screengrab.c:194:15: error: use of undeclared identifier 'GL_FRONT'
        glReadBuffer(GL_FRONT);
                     ^
src/screengrab.c:197:2: warning: implicit declaration of function 'glFinish' is
      invalid in C99 [-Wimplicit-function-declaration]
        glFinish();
        ^
src/screengrab.c:199:6: warning: implicit declaration of function 'glGetError'
      is invalid in C99 [-Wimplicit-function-declaration]
        if (glGetError() != GL_NO_ERROR) return NULL;
            ^
src/screengrab.c:199:22: error: use of undeclared identifier 'GL_NO_ERROR'
        if (glGetError() != GL_NO_ERROR) return NULL;
                            ^
src/screengrab.c:207:2: warning: implicit declaration of function
      'glPopClientAttrib' is invalid in C99 [-Wimplicit-function-declaration]
        glPopClientAttrib(); /* Clear attributes previously set. */
        ^
src/screengrab.c:223:2: warning: implicit declaration of function
      'glPushClientAttrib' is invalid in C99 [-Wimplicit-function-declaration]
        glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
        ^
src/screengrab.c:223:21: error: use of undeclared identifier
      'GL_CLIENT_PIXEL_STORE_BIT'
        glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
                           ^
src/screengrab.c:225:2: warning: implicit declaration of function
      'glPixelStorei' is invalid in C99 [-Wimplicit-function-declaration]
        glPixelStorei(GL_PACK_ALIGNMENT, BYTE_ALIGN); /* Force alignment. */
        ^
src/screengrab.c:225:16: error: use of undeclared identifier 'GL_PACK_ALIGNMENT'
        glPixelStorei(GL_PACK_ALIGNMENT, BYTE_ALIGN); /* Force alignment. */
                      ^
src/screengrab.c:226:16: error: use of undeclared identifier
      'GL_PACK_ROW_LENGTH'
        glPixelStorei(GL_PACK_ROW_LENGTH, 0);
                      ^
src/screengrab.c:227:16: error: use of undeclared identifier 'GL_PACK_SKIP_ROWS'
        glPixelStorei(GL_PACK_SKIP_ROWS, 0);
                      ^
src/screengrab.c:228:16: error: use of undeclared identifier
      'GL_PACK_SKIP_PIXELS'
        glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
                      ^
src/screengrab.c:235:2: warning: implicit declaration of function 'glReadPixels'
      is invalid in C99 [-Wimplicit-function-declaration]
        glReadPixels(x, y, width, height,
        ^
src/screengrab.c:236:30: error: use of undeclared identifier 'GL_BGRA'
                     MMRGB_IS_BGR ? GL_BGRA : GL_RGBA,
                                    ^
src/screengrab.c:236:40: error: use of undeclared identifier 'GL_RGBA'
                     MMRGB_IS_BGR ? GL_BGRA : GL_RGBA,
                                              ^
9 warnings and 9 errors generated.
error: Setup script exited with error: command 'clang' failed with exit status 1

誰でも助けることができます。複数のプラットフォームで動作するため、autopy が必要です

ethan.tira-thompson.com/Mac_OS_X_Ports.html を使用して libpng をインストールしました

コマンド ライン ツールと一緒に xcode もインストールする

4

3 に答える 3

12

src/screengrab.c このファイルは OpenGL の最新バージョンに更新されておらず、廃止されたメソッドがあります。autopy github リポジトリでは、これについて報告されたバグがここにあります。 提案された修正/ハックは、次の行を追加することです: #include <OpenGL/gl.h>

src/screengrab.c の 7 行目以降。easy_install を使用するのではなく、Github からソースを取得してローカルで変更する必要があります。
これはコンパイルするためのハックですが、画面グラブはすべて黒くなることに注意してください。誰かが screengrab.c を最新の方法で書き換えるのに数分かかる必要があります。

于 2012-10-31T03:04:59.447 に答える
3

追加したところ

#include <OpenGL/gl.h>

コンパイルされませんでした。

それで、私は自分のハードディスクを調べて、それぞれを探しましたgl.h

だから、私は試しました

    #include "/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/gl.h"

それから私はそれをコンパイルすることができました:-)

于 2014-09-05T09:52:16.073 に答える
-3

これを試した場合:

$ sudo easy_install autopy

もう 1 つのオプションは、GitHub リポジトリの最新のソースからコンパイルすることです。

$ git clone git://github.com/msanders/autopy.git

$ cd オートピー

$ python setup.py ビルド

$ python setup.py インストール

ソースからビルドする場合は、AutoPy を使用する前に autopy ディレクトリから cd を実行してください。そうしないと、Python の相対インポートが原因で ImportError で失敗する可能性があります。

于 2012-10-20T22:12:17.190 に答える