2017-01-11 2 views
1

Ich betreibe OSX 10.12.2 (16C67) und 3.6.0 innerhalb virtualenv.Wie installiere ich psycopg2 auf Mac mit virtualenv auf Python3.6?

Ich habe folgende getestet.

➜ ~ brew services restart postgresql 
Stopping `postgresql`... (might take a while) 
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql) 
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql) 

➜ ~ pg_config 
BINDIR = /usr/local/Cellar/postgresql/9.6.1/bin 
DOCDIR = /usr/local/Cellar/postgresql/9.6.1/share/doc/postgresql 
HTMLDIR = /usr/local/Cellar/postgresql/9.6.1/share/doc/postgresql 
INCLUDEDIR = /usr/local/Cellar/postgresql/9.6.1/include 
PKGINCLUDEDIR = /usr/local/Cellar/postgresql/9.6.1/include 
INCLUDEDIR-SERVER = /usr/local/Cellar/postgresql/9.6.1/include/server 
LIBDIR = /usr/local/lib 
PKGLIBDIR = /usr/local/lib/postgresql 
LOCALEDIR = /usr/local/Cellar/postgresql/9.6.1/share/locale 
MANDIR = /usr/local/Cellar/postgresql/9.6.1/share/man 
SHAREDIR = /usr/local/share/postgresql 
SYSCONFDIR = /usr/local/etc/postgresql 
PGXS = /usr/local/lib/postgresql/pgxs/src/makefiles/pgxs.mk 
CONFIGURE = '--disable-debug' '--prefix=/usr/local/Cellar/postgresql/9.6.1' '--datadir=/usr/local/share/postgresql' '--libdir=/usr/local/lib' '--sysconfdir=/usr/local/etc' '--docdir=/usr/local/Cellar/postgresql/9.6.1/share/doc/postgresql' '--enable-thread-safety' '--with-bonjour' '--with-gssapi' '--with-ldap' '--with-openssl' '--with-pam' '--with-libxml' '--with-libxslt' '--with-perl' '--with-tcl' '--with-tclconfig=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib' '--with-uuid=e2fs' 'CC=clang' 'LDFLAGS=-L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' 'CPPFLAGS=-I/usr/local/opt/openssl/include -I/usr/local/opt/readline/include' 
CC = clang 
CPPFLAGS = -DFRONTEND -I/usr/local/opt/openssl/include -I/usr/local/opt/readline/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2 
CFLAGS_SL = 
LDFLAGS = -L../../src/common -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib -Wl,-dead_strip_dylibs 
LDFLAGS_EX = 
LDFLAGS_SL = 
LIBS = -lpgcommon -lpgport -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm 
VERSION = PostgreSQL 9.6.1 

➜ ~ gcc --version 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 8.0.0 (clang-800.0.42.1) 
Target: x86_64-apple-darwin16.3.0 
Thread model: posix 
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin 

Wurde überprüft, dass XCode-Tools installiert sind. Aber ich bekomme immer Fehler, wenn ich versuche, psycopg2 zu installieren. Irgendwelche Ideen was als nächstes zu tun ist.

** EDIT

Ich habe gerade versucht es außerhalb der virtualenv Version mit gleichen Python zu installieren und installiert ohne Probleme.

➜ ~ pip3 install psycopg2 
Collecting psycopg2 
    Using cached psycopg2-2.6.2.tar.gz 
Building wheels for collected packages: psycopg2 
    Running setup.py bdist_wheel for psycopg2 ... done 
    Stored in directory: /Users/Kimmo/Library/Caches/pip/wheels/49/47/2a/5c3f874990ce267228c2dfe7a0589f3b0651aa590e329ad382 
Successfully built psycopg2 
Installing collected packages: psycopg2 
Successfully installed psycopg2-2. 

6,2

Antwort

1

Sowohl Python 2 und Python 3 haben eine pip Dienstprogramm mit ihnen verbundenen läuft. Wenn Sie also beide im selben Verzeichnis installieren, besteht bei der zweiten Installation das Risiko, dass die pip von der ersten überschrieben wird.

Es ist immer am sichersten zu laufen python2 -m pip oder python3 -m pip, wenn Sie sicher sein wollen, welche Version Sie ausführen.

Sobald Sie eine virtuelle Umgebung korrekt aktiviert haben, sollte pip standardmäßig ausgeführt werden, um sicherzustellen, dass die Installation in der virtuellen Umgebung erfolgt. Wenn der virtualenv keinen pip enthält, wird es schwieriger sein, Pakete in Ihrem virtualenv zu installieren.

0

Es scheint, dass mit meiner Konfiguration pip install -r requirements.txt schlägt fehl, wenn python3 verwenden.

Ich löste dies durch pip uninstall -r requirements.txt laufen und dann pip3 install -r requirements.txt

+1

Es scheint einige Verwirrung darüber zu geben, welcher 'pip' ausgeführt wird. Das ist nicht gut. Unter diesen Umständen (vorausgesetzt, Sie wissen, welcher 'Python 'läuft :-)) ist es oft besser,' python -m pip' anstelle von – holdenweb

+0

zu verwenden. Ah habe nie realisiert, dass ich pip wie jedes andere Python-Modul mit der Option -m ausführen kann. Ja, das könnte eine bessere Idee sein. –

+0

Ja, es verarbeitet Argumente genau wie 'pip' und macht es einfacher zu bestimmen, welche zu verwenden ist. Aber ich vermute, das eigentliche Problem ist Python2 und Python3 im selben Verzeichnis installiert – holdenweb

Verwandte Themen