Wurde IMHO schon lange nicht mehr über PyPy geredet
Wie sieht's aus, nutzt jemand PyPy mittlerweile?
Einige aktuelle Informationen von der EuroPython 2010 PyPy Talk hier als PDF: http://codespeak.net/svn/pypy/extradoc/ ... k/talk.pdf
Hab gesehen, das man relativ einfach Django zum laufen bekommen kann, siehe: http://code.djangoproject.com/wiki/DjangoAndPyPy
Auch virtualenv soll funktionieren...
Auf speed.pypy.org ist auch Django gelistet:
http://speed.pypy.org/comparison/?exe=2 ... ative+bars
Demnach ist PyPy-c jit über 5x schneller als cpython... Das hört sich doch interessant an...
Es scheint auch immer schneller zu werden (zwar nicht in riesigen schritten, aber halbwegs kontinuierlich): http://speed.pypy.org/timeline/?ben=django&env=tannit
Was wohl noch nicht geht ist MySQLdb...
Es soll aber http://code.google.com/p/pymysql/ (pure Python MySQL client) funktionieren, siehe: http://groups.google.com/group/django-u ... d014c1ad9/
Schon jemand Probiert?
PyPy...
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hab gerade, wegen dem GIL removal in Python 1.4 Thread nochmal gesucht und das gefunden:
http://2011.djangocon.eu/media/slides/pypy-talk.pdf
Django läuft anscheinend gut unter PyPy und das schnell, siehe: http://bit.ly/pypy-django-bench
Doch an der DB Anbindung krankt es noch. Zwar läuft SQLite ohne Probleme, aber MySQL geht noch nicht wirklich gut, laut dem PDF.
Wobei https://bitbucket.org/pypy/compatibilit ... sql-python nur wenig nötige Änderungen Auflistet. Allerdings findet man auf http://sourceforge.net/projects/mysql-python/ nichts zum Thema PyPy.
Die README von https://github.com/petehunt/PyMySQL liest sich versprechend, daber dazu muß man wohl Django patchen
Zu PostgreSQL steht:
Die Seite https://fedoraproject.org/wiki/Features/PyPyStack sieht allerdings schon mal interessant aus.
http://2011.djangocon.eu/media/slides/pypy-talk.pdf
Django läuft anscheinend gut unter PyPy und das schnell, siehe: http://bit.ly/pypy-django-bench
Doch an der DB Anbindung krankt es noch. Zwar läuft SQLite ohne Probleme, aber MySQL geht noch nicht wirklich gut, laut dem PDF.
Wobei https://bitbucket.org/pypy/compatibilit ... sql-python nur wenig nötige Änderungen Auflistet. Allerdings findet man auf http://sourceforge.net/projects/mysql-python/ nichts zum Thema PyPy.
Die README von https://github.com/petehunt/PyMySQL liest sich versprechend, daber dazu muß man wohl Django patchen
Zu PostgreSQL steht:
Wird wohl noch eine Weile dauern, bis man frei zwischen CPython und PyPy wählen kann.RPython psycopg2 compatible lib, requires compiling your own PyPy
Die Seite https://fedoraproject.org/wiki/Features/PyPyStack sieht allerdings schon mal interessant aus.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich hab es mal getestet:
PyLucid ist da... Dann weiter: die requirements installieren... Würde auch direkt ohne --no-deps gemacht werden. Aber pip hängt beim "feedparser":
Davon steht bei https://bitbucket.org/pypy/compatibilit ... feedparser nichts...
Also mal per Hand weiter machen, mal sehen wie weit man kommt:
Alles für PyLucid installiert, bis auf den Feedparser. Ohne geht's erstmal auch
Dann mal mit SQLite probieren (ist default bei create_page_instance.sh):
Dabei tauchen viele Warnings von SQLite auf, wie:
Mal weiter machen:
Das sieht nicht gut aus, denn es kommen viele Warings, aber nicht die zu erwarteten Ausgaben, wie:
Der Developer Server mal starten und nachsehen:
Sieht gut aus. Seite läuft...
Ein kleines Problem ist schon gefixed: https://github.com/jedie/django-tools/c ... 4ddd6f8de8
sys.getsizeof(instance) wirft TypeError: sys.getsizeof() not implemented on PyPy, wobei ich nur AttributeError abgefangen hab...
Die unittests laufen eine ganze weile durch, dann gibt es aber einen Speicherzugriffsfehler.
Code: Alles auswählen
# aktuelles virtualenv bekommen (über pip)
~$ wget https://github.com/pypa/pip/raw/master/contrib/get-pip.py
~$ sudo python get-pip.py
~$ sudo pip install --upgrade virtualenv
~$ sudo ln -s /usr/local/bin/ /usr/bin/virtualenv
~$ wget https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-linux64.tar.bz2
~$ tar xf pypy-1.5-linux64.tar.bz2
~$ virtualenv -p pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy pypy-env
~$ cd pypy-env/bin
~/pypy-env/bin$ source activate
(pypy-env)~/pypy-env/bin$ source activate
(pypy-env)~/pypy-env/bin$ ./pip install -e git+git://github.com/jedie/PyLucid.git#egg=PyLucid --no-deps
Code: Alles auswählen
(pypy-env)~/pypy-env/bin$ ./pip install --verbose -r ../src/pylucid/requirements/normal_installation.txt
Downloading/unpacking feedparser>=5.0.1,<5.1 (from -r ../src/pylucid/requirements/basic_requirements.txt (line 6))
Ignoring link http://pypi.python.org/packages/source/f/feedparser/feedparser-5.0.tar.gz#md5=983d93bf1f4f8558bc01c08ffea8b61a (from http://pypi.python.org/simple/feedparser/), version 5.0 doesn't match >=5.0.1,<5.1
Ignoring link http://pypi.python.org/packages/source/f/feedparser/feedparser-4.1.tar.gz#md5=573a8df4d4305b37107040654f52b826 (from http://pypi.python.org/simple/feedparser/), version 4.1 doesn't match >=5.0.1,<5.1
Ignoring link http://pypi.python.org/packages/source/f/feedparser/feedparser-5.0.zip#md5=67ccf489699d641876ddb370067959d9 (from http://pypi.python.org/simple/feedparser/), version 5.0 doesn't match >=5.0.1,<5.1
Ignoring link http://pypi.python.org/packages/source/f/feedparser/feedparser-5.0.tar.bz2#md5=88d11b31b31305ea36ba62be8a541a15 (from http://pypi.python.org/simple/feedparser/), version 5.0 doesn't match >=5.0.1,<5.1
Using version 5.0.1 (newest of versions: 5.0.1, 5.0.1, 5.0.1, 5.0.1, 5.0.1)
Downloading feedparser-5.0.1.tar.bz2 (204Kb): 204Kb downloaded
Also mal per Hand weiter machen, mal sehen wie weit man kommt:
Code: Alles auswählen
(pypy-env)~/pypy-env/bin$ ./pip install --verbose Django\>=1.3,\<1.4
(pypy-env)~/pypy-env/bin$ ./pip install --verbose python-creole django-dbpreferences django-tools
(pypy-env)~/pypy-env/bin$ ./pip install --verbose Pygments django-reversion django-dbtemplates django-tagging South
Code: Alles auswählen
# PyLucid Skripte symlinken:
(pypy-env)~/pypy-env/bin$ cd ..
(pypy-env)~/pypy-env$ ln src/pylucid/scripts/create_page_instance.sh .
# page instance erstellen
(pypy-env)~/pypy-env$ ./create_page_instance.sh ~/pypy_page/
Code: Alles auswählen
(pypy-env)~/pypy-env/bin$ cd ~/pypy_page/
(pypy-env)~/pypy_page$ ./manage.py syncdb
Code: Alles auswählen
/home/jens/pypy-c-jit-43780-b590cf6de419-linux64/lib_pypy/_sqlite3.py:1031: RuntimeWarning: C function without declared arguments called
sqlite.sqlite3_finalize(self.statement)
/home/jens/pypy-c-jit-43780-b590cf6de419-linux64/lib_pypy/_sqlite3.py:1031: RuntimeWarning: C function without declared return type called
sqlite.sqlite3_finalize(self.statement)
Code: Alles auswählen
(pypy-env)~/pypy_page$ ./manage.py migrate
(pypy-env)~/pypy_page$ ./manage.py loaddata pylucid.json
Code: Alles auswählen
Installing json fixture 'pylucid' from 'PyLucid_env/src/pylucid/pylucid_project/apps/pylucid_admin/fixtures'.
Installed 159 object(s) from 1 fixture(s)
Code: Alles auswählen
./manage.py runserver
Ein kleines Problem ist schon gefixed: https://github.com/jedie/django-tools/c ... 4ddd6f8de8
sys.getsizeof(instance) wirft TypeError: sys.getsizeof() not implemented on PyPy, wobei ich nur AttributeError abgefangen hab...
Die unittests laufen eine ganze weile durch, dann gibt es aber einen Speicherzugriffsfehler.
Was mich nach wie vor zurückhält ist mangelnder numpy-Support. Bislang gab es viele Ankündigungen (u. a. vor rund zwei Jahren in Leipzig), aber nichts was über den experimentellen Status hinaus geht (oder?).
Und ich glaube ich bin nicht alleine mit meiner Einschätzung, daß insb. der wissenschaftliche Teil der Community stark auf PyPy mit numpy schielt.
Und ich glaube ich bin nicht alleine mit meiner Einschätzung, daß insb. der wissenschaftliche Teil der Community stark auf PyPy mit numpy schielt.
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
@jens: Das Feedparser-Installieren dauert glaube ich so lange, weil das Auspacken so lange dauert -- PyPy 1.5 ist ganz grottig im GZip/BZip-Auspacken. Ist aber in 1.6 gefixt.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hm. Das könnte sein. Leider bekommt man mit --verbose keine Statusmeldung (wie so oft bei Linux cli Dingen )
Ich versuche gerade PyPy auf einem Server zu testen. Dort hab ich keinen root zugriff und nur ein virtualenv v1.4.9 Laut http://doc.pypy.org/en/latest/getting-s ... virtualenv benötigt man aber v1.6.1...
Ich hab mal folgendes Probiert:
Klappt so also nicht. Obwohl prinzipell das schon fuktioniert:
...
Es ist hat nichts mit virtualenv zu tun... Das starten von PyPy klappt generell nicht, kommt nur der Fehler:
Ich versuche gerade PyPy auf einem Server zu testen. Dort hab ich keinen root zugriff und nur ein virtualenv v1.4.9 Laut http://doc.pypy.org/en/latest/getting-s ... virtualenv benötigt man aber v1.6.1...
Ich hab mal folgendes Probiert:
Code: Alles auswählen
~$ virtualenv --version
1.4.9
~$ virtualenv virtualenv2 --no-site-packages
~$ cd virtualenv2/bin/
~$ virtualenv2/bin$ source activate
(virtualenv2)virtualenv2/bin$ pip install --upgrade pip virtualenv
(virtualenv2)virtualenv2/bin$ cd ~
(virtualenv2)~$ virtualenv --version
1.6.4
(virtualenv2)~$ wget https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-linux64.tar.bz2
(virtualenv2)~$ tar xf pypy-1.5-linux64.tar.bz2
(virtualenv2)~$ virtualenv --no-site-packages -p pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy pypy-env
Running virtualenv with interpreter pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy
pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy: error while loading shared libraries: libffi.so.5: cannot open shared object file: No such file or directory
Code: Alles auswählen
(virtualenv2)~$ virtualenv --no-site-package pypy-env
Using real prefix '/usr'
New python executable in pypy-env/bin/python
Installing setuptools............done.
Installing pip...............done.
...
Es ist hat nichts mit virtualenv zu tun... Das starten von PyPy klappt generell nicht, kommt nur der Fehler:
Code: Alles auswählen
./pypy: error while loading shared libraries: libffi.so.5: cannot open shared object file: No such file or directory
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, ist halt gegen eine andere Version von libFFI gelinkt, musst also entweder ein passendes Build installieren oder deine eigene libffi.so.5 bereitstellen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Wie man PyPy mittels virtualenv ausprobieren kann, hab ich mal ins Wiki übertragen: http://wiki.python.de/PyPy#PyPy_Ausprobieren
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Gerade gibt es ein "proposal" um PyMySQL in Django zu Unterstützen: https://groups.google.com/group/django- ... 1959c9e5bejens hat geschrieben:Es soll aber http://code.google.com/p/pymysql/ (pure Python MySQL client) funktionieren, siehe: http://groups.google.com/group/django-u ... d014c1ad9/
Schon jemand Probiert?
Dann könnte man IMHO PyPy auch mit Django + MySQL nutzten... Wäre nett...