Я использую pip и пытаюсь установить модуль python под названием pyodbc, который имеет некоторые зависимости от непифонных библиотек, таких как unixodbc-dev, unixodbc-bin, unixodbc. На данный момент я не могу установить эти зависимости в системе, так как я только играю, поэтому я установил их в нестандартном месте. Как я могу указать, где искать эти зависимости? Точнее, как передать информацию через pip of include dirs (gcc -I) и библиотечные dirs (gcc -L -l), которые будут использоваться при создании расширения pyodbc?python pip определяет каталог библиотеки и каталог include
ответ
На всякий случай это помогло кому-то, я все еще не мог найти способ сделать это через пип, поэтому в итоге просто загрузил пакет и выполнил его «setup.py». Также переключается на то, что кажется более простым в установке API под названием «pymssql».
Как вы указали setup.py на зависимости, которые вы установили в нестандартном местоположении? –
как этот 'python setup.py build_ext --rpath =/usr/local/lib'? – yota
Вы когда-нибудь использовали virtualenv? Это пакет Python, который позволяет создавать и поддерживать несколько изолированных сред на одной машине. Каждый из них может использовать разные модули независимо друг от друга без зависания зависимостей в вашей системной библиотеке или отдельной виртуальной среде.
Если вы не имеете права администратора, вы можете download and use the virtualenv package from source:
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ python virtualenv.py myVE
Я последовал за вышеуказанные шаги в эти выходные на Ubuntu Server 12.0.4 и она работала отлично. Каждая новая виртуальная среда, которую вы создаете, поставляется с PIP по умолчанию, поэтому установка пакетов в новую среду проста.
Джеймс, действительно. В ответе, который я дал, я должен был указать, что я тоже использовал virtualenv. – Cricri
Это действительно не помогает, поскольку ОП четко заявили, что им необходимо установить библиотеки, отличные от python (например, передать args компилятору/компоновщику). Я нахожусь в одной лодке, и я немного разочарован тем, что каждый третий ответ на этот вопрос - «использовать virtualenv», потому что (хотя я согласен, что virtualenv - отличный инструмент), на самом деле это не проблема. – gred
@gred, после более пристального изучения вопроса, я согласен ... virtualenv здесь не является правильным решением. Похоже, что OP нашел обходное решение с помощью setup.py. –
пип имеет --global-option
пометки
Вы можете использовать его, чтобы передать дополнительные флаги build_ext
.
Например, чтобы добавить --library-каталоги (-L) флаг:
pip install --global-option=build_ext --global-option="-L/path/to/local" pyodbc
GCC поддерживает также переменные окружения: http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
Я не мог найти какой-либо документации build_ext, так вот командной строки помощь
Options for 'build_ext' command:
--build-lib (-b) directory for compiled extension modules
--build-temp (-t) directory for temporary files (build by-products)
--plat-name (-p) platform name to cross-compile for, if supported
(default: linux-x86_64)
--inplace (-i) ignore build-lib and put compiled extensions into the
source directory alongside your pure Python modules
--include-dirs (-I) list of directories to search for header files
(separated by ':')
--define (-D) C preprocessor macros to define
--undef (-U) C preprocessor macros to undefine
--libraries (-l) external C libraries to link with
--library-dirs (-L) directories to search for external C libraries
(separated by ':')
--rpath (-R) directories to search for shared C libraries at runtime
--link-objects (-O) extra explicit link objects to include in the link
--debug (-g) compile/link with debugging information
--force (-f) forcibly build everything (ignore file timestamps)
--compiler (-c) specify the compiler type
--swig-cpp make SWIG create C++ files (default is C)
--swig-opts list of SWIG command line options
--swig path to the SWIG executable
--user add user include, library and rpath
--help-compiler list available compilers
Спасибо! Это помогло мне создать python-ldap на Mac. –
Хотелось бы, чтобы это было лучше документировано. Это было почти единственное, что сработало для меня, установив scikit-learn против статически скомпилированного ATLAS в сочетании с опциональной спецификацией, как описано [здесь] (http://scikit-learn-general.narkive.com/FSKFd98i/on -построение-scikit-узнать-0-14-1-с-статическим-атласом-на-нестандартное место) – Praveen
Просто FYI ... Если у вас возникли проблемы при установке пакета с пип, то вы можете использовать
--no-clean
возможность увидеть, что именно происходит (то есть, почему сборка не работает). Например, если NumPy не устанавливать должным образом, вы можете попробовать
pip install --no-clean numpy
затем посмотреть на временной папке, чтобы увидеть, как далеко сборки есть. На машине Windows, это должно быть расположено на что-то вроде:
C:\Users\Bob\AppData\Local\Temp\pip_build_Bob\numpy
Просто чтобы быть ясно, то --no-чистый вариант пытается установить пакет, но не убирать за собой, позволяя вам см., что пыталось сделать пип.
В противном случае, если вы просто хотите загрузить исходный код, тогда я бы использовал флаг -d
.Например, чтобы загрузить исходный Numpy код .tar
файл в текущем каталоге, используйте:
pip install -d %cd% numpy
Опираясь на ответ Thorfin и при условии, что ваш желаемый включать и места библиотеки в/USR/местные, вы можете пройти как в например:
sudo pip install --global-option=build_ext --global-option="-I/usr/local/include/" --global-option="-L/usr/local/lib" <you package name>
Другой способ указания местоположения включенных файлов и библиотек устанавливать соответствующие переменные среды перед запуском пипа, например
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
pip install cryptography
- 1. Каталог установки pip
- 2. php include полный каталог
- 3. каталог с PHP Include
- 4. PyYAML: как указать каталог include?
- 5. Где PhoneGap определяет каталог проекта?
- 6. XAMPP определяет рабочий каталог и использует его
- 7. g ++ не распознает каталог include
- 8. Проект «Дополнительный каталог include» игнорируется
- 9. Каталог Python и PYQT:
- 10. Как настроить локальный каталог библиотеки python/PYTHONPATH?
- 11. Установите пакет Python в другой каталог, используя pip?
- 12. win 8.1 cygwin - pip устанавливается в каталог windows python?
- 13. Pip устанавливает в каталог anaconda вместо каталога python (Windows)
- 14. Изменить каталог на каталог скрипта Python
- 15. активный каталог и открытый каталог
- 16. Номинировать каталог библиотеки при компиляции
- 17. Каталог пользовательской библиотеки для Ruby
- 18. Что определяет текущий каталог в веб-приложении
- 19. Git определяет каталог с расширением как файл
- 20. перезапуск nginx, который установил пользователь, определяет каталог
- 21. Как указать каталог include для скрипта configure
- 22. Укажите каталог include для C libs
- 23. Найти каталог BLAS include с CMake
- 24. virtualenv каталог из сценария
- 25. Как pip определяет версию пакета python
- 26. Cmake: создать каталог в include path
- 27. Почему bundleConfig игнорирует мой каталог include
- 28. Как указать каталог include в ADA GPS
- 29. Set #include каталог из C++ кода файла
- 30. Как добавить каталог include в Go/LiteIDE?
был питон установлен с [--user' '] (http://docs.python.org/2/install/index.html#alternate-installation-the-user-scheme) вариант? – Bryan