Ошибки при установке Python Autopy
Эй, я посмотрел и старый вопрос здесь, но он не отвечает на мой вопрос
Я установил libpng, затем попытался установить autopy и получить ошибки complie.
Я еще не очень хорош в 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
Может кто-нибудь помочь. Мне нужно автопи, так как он работает на нескольких платформах
Я использовал ethan.tira-thompson.com/Mac_OS_X_Ports.html для установки libpng
Иметь xcode с инструментами командной строки
4 ответа
У меня была такая же проблема, если вы заметили, что все 9 ошибок происходят из одного файла:
src/screengrab.c Этот файл не был обновлен до последней версии OpenGL, и существуют устаревшие методы. На репозитории autopy github есть сообщение об ошибке здесь. Исправление / хак предложил там добавить строку:#include <OpenGL/gl.h>
после строки 7 в src/screengrab.c. Вам нужно будет получить исходный код от Github и изменить его локально, а не с помощью easy_install.
Обратите внимание, что это хак, который заставит его скомпилироваться, но скриншоты будут полностью черными. Кто-то должен потратить несколько минут, переписывая screengrab.c современными методами.
Когда я добавил
#include <OpenGL/gl.h>
Это не компилируется.
Итак, я посмотрел мой жесткий диск, ища каждый gl.h
Итак, я попробовал
#include "/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/gl.h"
Тогда мне удалось его скомпилировать:-)
Вы можете установить autopy только в python 3.8; Иначе его нельзя установить.
Или вы можете понизить версию автозапуска. Есть история автозапуска:
https://pypi.org/project/autopy/#history
У меня также были ошибки при установке autopy, но когда я установил python 3.8, он работал отлично.
Это работает - спасибо!
Если вы пробовали это:
$ sudo easy_install autopy
Другой вариант - скомпилировать из последнего источника в репозитории GitHub:
$ git clone git: //github.com/msanders/autopy.git
$ cd autopy
$ python setup.py build
$ python setup.py install
При сборке из исходного кода, убедитесь, что cd из каталога autopy, прежде чем пытаться использовать AutoPy, иначе он может завершиться ошибкой ImportError из-за относительного импорта Python.