Zuerst bitte mit mir. Es fällt mir schwer, anderen mein Problem mitzuteilen, und dies ist ein langer Thread ...
Ich verwende Pythonbrew, um mehrere Versionen von Python in Ubuntu 10.10 auszuführen. Wenn Sie Pythonbrew installieren und wie es funktioniert, verweisen Sie bitte auf den folgenden Link
Nachdem ich ein paar stackoverflow-Threads gelesen hatte, fand ich schließlich die Datei Setup unter diesem Verzeichnis: ~/.pythonbrew/pythons/Python-2.7.1/lib/python2.7/config
In this Setup file I see
# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
# zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
Die letzte Zeile wurde auskommentiert, dann lief ich wieder python -v. Ich habe jedoch die gleiche Fehlermeldung erhalten, als ich import zlib ausprobierte. Ich denke, ich muss etwas tun, um zlib in die lib zu installieren.
Aber ich weiß nicht, was ich tun muss. Kann mich bitte jemand in die richtige Richtung lenken ??? Vielen Dank!
Ich mache das, weil ich verschiedene Python-Versionen in verschiedenen von mir erstellten virtuellen Umgebungen verwenden möchte. Als ich virtualenv -p python2.7 machte, erhielt ich kein Modul mit dem Namen zlib.
[email protected]:~$ virtualenv -p python2.7 --no-site-packages testenv
Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-2.7.1/bin/python2.7
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 17, in <module>
import zlib
ImportError: No module named zlib
EDIT
Ich muss 2.7.1 installieren, indem Sie --force anhängen.
Ich entwickle Django, und ich brauche einige dieser fehlenden Module, zum Beispiel sqlite3. Um meine Virtualenv zu erstellen, brauche ich definitiv Zlib. Wenn ich nur den Systemstandard (2.6.6) verwende, habe ich kein Problem.
Um dies mit den Systemvorgaben zu tun, muss ich lediglich Folgendes tun
virtualenv --no-site-packages testenv
Vielen Dank!
(2. Bearbeitung)
Ich habe auch 3.2 installiert und es ohne Probleme getestet. Ich denke, mein Problem hängt von der Installation der fehlenden Module ab.
[email protected]:~$ virtualenv -p python3.2 testenv
Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2
New python executable in testenv/bin/python3.2
Also creating executable in testenv/bin/python
Installing distribute..................................................................................................................................................................................................................................................................................................................................done.
Installing pip...............done.
[email protected]:~$ virtualenv -p python3.2 --no-site-packages testenv
Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2
New python executable in testenv/bin/python3.2
Also creating executable in testenv/bin/python
Installing distribute..................................................................................................................................................................................................................................................................................................................................done.
Installing pip...............done.
Klingt, als müssten Sie das devel-Paket für zlib installieren, wahrscheinlich möchten Sie etwas wie Sudo apt-get install zlib1g-dev
tun (ich verwende ubuntu nicht, deshalb sollten Sie das Paket noch einmal überprüfen). Anstatt Python-Brew zu verwenden, möchten Sie vielleicht nur das manuelle Kompilieren in Betracht ziehen, es ist nicht sehr schwer. Laden Sie einfach die Quelle und configure
, make
, make install
herunter. Sie sollten mindestens --prefix
irgendwo festlegen, damit es installiert wird, wo Sie möchten.
./configure --prefix=/opt/python2.7 + other options
make
make install
Sie können mit ./configure --help
überprüfen, welche Konfigurationsoptionen verfügbar sind, und mit Hilfe von Python, mit dem Ihr System erstellt wurde, Folgendes tun:
python -c "import sysconfig; print sysconfig.get_config_var('CONFIG_ARGS')"
Der Schlüssel ist, um sicherzustellen, dass Sie die Entwicklungspakete für Ihr System installiert haben, damit Python die Module zlib
, sqlite3
usw. erstellen kann. Die Python-Dokumente behandeln den Build-Prozess ausführlicher: http://docs.python.org/using/unix.html#building-python .
Bei der Konfiguration der Python-Quelle ist das zlib-Modul standardmäßig deaktiviert, sodass Sie es bei der Konfiguration mit der Option-withwith-zlib aktivieren können. So wird es
./configure --with-zlib
Für den Fall, den ich traf, habe ich festgestellt, dass nach make Module fehlen. Also habe ich folgendes gemacht:
Nach dem Ausführen von configure können Sie die Konfigurationsoption in der Datei Module/Setup wie folgt ändern:
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
Oder Sie können die Zlib-Zeile unverändert auskommentieren.
Nachdem Sie das fehlende zlib dev-Paket installiert haben, können Sie auch Pythonbrew zum Deinstallieren verwenden und anschließend die gewünschte Version von Python erneut installieren. Es scheint, als würde es das neue Paket abrufen, das kompiliert werden soll, um die Fähigkeiten zu korrigieren. Auf diese Weise können Sie weiterhin Pythonbrew verwenden und müssen die Kompilierung nicht selbst durchführen (obwohl dies nicht so schwierig ist).
Die einfachste Lösung, die ich gefunden habe, ist auf python.org devguide angegeben:
Sudo apt-get build-dep python3.6
Wenn dieses Paket nicht für Ihr System verfügbar ist, reduzieren Sie die Nebenversion, bis Sie ein Paket finden, das im Paketmanager des Systems verfügbar ist.
Ich habe versucht, Details auf meinem Blog zu erklären.
Ich hatte eine Menge Probleme beim Erstellen einer virtuellen Umgebung (venv), wie im tensorflow Installationshandbuch beschrieben.
Die meisten der in diesem Beitrag aufgeführten Befehle haben mir auch nicht geholfen. Wenn dies auch Ihr Fall ist, habe ich Folgendes getan:
pip3 install --user pipenv
pip install virtualenv
Installiert die Abhängigkeiten zum Erstellen einer virtuellen Umgebung
mkdir myenv
Erzeugt ein neues Verzeichnis mit dem Namen myenv. Sie können es jedoch nach Belieben aufrufen, z. mynewenv
cd myenv
Oder wie auch immer Sie Ihr Verzeichnis so nennen: cd [Ihr_Verzeichnis_Name]
virtualenv -p /usr/bin/python3 venv
Erstellt eine virtuelle Umgebung mit dem Namen venv im Ordner myenv. Sie können Ihre virtuelle Umgebung beliebig anrufen, z. vitualenv [v_env_name]
source ./venv/bin/activate
Aktiviert die virtuelle Umgebung. Beachten Sie dies, wenn Sie eine andere Versionsnummer wählen. benennen Sie Ihre Befehle als solche source ./[v_env_name yes/bin/activate
deactivate
Deaktiviert die virtuelle Umgebung.
Hinweis: Ich verwende Python 3.6.6 und Ubuntu 18.04
Mein Ziel war es, ein neues Django-Projekt von der Befehlszeile in Ubuntu aus zu erstellen:
Django-admin.py startproject mysite
Ich habe Python2.7.5 installiert. Ich habe diesen Fehler erhalten:
ImportError: No module named zlib
Stundenlang konnte ich bis jetzt keine Lösung finden!
Hier ist ein Link zur Lösung -
http://doc.biblissima-condorcet.fr/loris-setup-guide-ubuntu-debian
Ich habe die Anweisungen in Abschnitt 1.1 befolgt und ausgeführt und sie funktioniert einwandfrei! Es ist eine einfache Lösung.