Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Niedawno zacząłem uczyć się pythona i aby wykorzystać nabytą wiedzę (jak dotad bardzo uboga) w jakiś praktyczny sposób chciałem "pobawić się" django.
Zainstalowałem wiec pakiet python-django z repozytorium i wówczas rozpoczely sie problemy.
Po pierwsze prakiet jest instalowany w /usr/share/pyshared, a ten folder nie nalezy do domyslnej sciezki pythona w debianie co akurat ogarnalem w miare szyko dodajac odpowiednie wpisy.
>>> import sys >>> print sys.path ['', '/usr/share/pyshared', '/usr/share/pyshared/gtk-2.0', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7'] >>>
Nastepnie przy probie uruchomienia django z repozytorium:
$ python2.7 manage.py runserver Traceback (most recent call last): File "manage.py", line 2, in <module> from django.core.management import execute_manager ImportError: No module named core.management
ale
$ python2.7 Python 2.7.1+ (default, Apr 20 2011, 10:53:33) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>>
jak sie okazalo ktos usunal pliki __init__.py z niektorych katalogow tego pakietu z debiana ale w jakim celu to nie wiem.
Django pobranie z svn działa wiec i to jakos przeboleje.
Proba uruchomienia django z svn:
$ python2.7 manage.py runserver Validating models... 0 errors found Django version 1.4 pre-alpha SVN-16149, using settings 'blog.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
czyli jak dotad looz ;-). Podrecznik django zaleca uzycie postgresql http://www.djangobook.com/en/2.0/chapter02/ i pakietu psycopg2 ale przy probie sprawdzenia czy ten modul do obslugi postgresql w ogole dziala otrzymuje komunikat:
$ python2.7 Python 2.7.1+ (default, Apr 20 2011, 10:53:33) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import psycopg2 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/share/pyshared/psycopg2/__init__.py", line 69, in <module> from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID ImportError: No module named _psycopg >>> import psycopg2 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/share/pyshared/psycopg2/__init__.py", line 65, in <module> from psycopg2 import tz ImportError: cannot import name tz >>>
Zapoznawszy się z polityka debiana dotyczaca pakietow pythona ( http://www.debian.org/doc/packaging-manuals/python- … h-python.html ) probowalem z pythonem 2.6 ale skutek jest podobny.
Wczoraj spedzilem czytaj stracilem okolo pol dnia szukajac rozwiazan kolejnych problemow i na nic odkrywczego nie trafilem i w zwiazku z tym ostatnim i mam pytanie.
Ktoś ogarnia temat pakietów pythona na tyle aby wskazac mi co powinienem zrobic aby moc skorzystac z psycopg2? Wyglada na to iz brakuje czegos z psycopg1 ktorego w repozytorium nie ma a i easy_install nie potrafi zainstalowac tego pakietu.
Tak przy okazji
Czy opiekunowie tych pakietow w ogole sprawdzaja ich poprawne dzialanie czy tylko robia paczki i ida na piwo? Wiem o istnieniu stron/list do raportowania prawdziwych i wyimaginowanych bledow, ale zeby wszystko po kolei sprawialo tyle problemow.
Offline
Python2.7 - to jest niby stabilny python, ale ciągle część modulów na nim działa, ale nie wszystkie.
Na 95% potrzebujesz stabilnego pythona 2.6, na którym zazwyczaj wszystko działa.
Offline
Mam Pythona 2.7.1 w Ubuntu, django stabilne 1.3.0 ze strony i wszystko działa. Polecam.
Offline
To naprawdę imponujące! Ale co polecasz? stabilne django, ubuntu czy też coś innego?
Ja pytam o konkretny problem.
W archlinux też jest problem w postaci:
python2 manage.py runserver Validating models... Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x1f2cf50>> Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 88, in inner_run self.validate(display_num_errors=True) File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 243, in validate from django.core.management.validation import get_validation_errors File "/usr/lib/python2.7/site-packages/django/core/management/validation.py", line 3, in <module> from django.contrib.contenttypes.generic import GenericForeignKey, GenericRelation File "/usr/lib/python2.7/site-packages/django/contrib/contenttypes/generic.py", line 6, in <module> from django.db import connection File "/usr/lib/python2.7/site-packages/django/db/__init__.py", line 78, in <module> connection = connections[DEFAULT_DB_ALIAS] File "/usr/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__ backend = load_backend(db['ENGINE']) File "/usr/lib/python2.7/site-packages/django/db/utils.py", line 33, in load_backend return import_module('.base', backend_name) File "/usr/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/usr/lib/python2.7/site-packages/django/db/backends/postgresql/base.py", line 23, in <module> raise ImproperlyConfigured("Error loading psycopg module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: No module named psycopg
ale po zainstalowaniu
sudo pacman -S python-psycopg1
$ python2 manage.py runserver Validating models... 0 errors found Django version 1.3, using settings 'blog.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
wiec rozmawiajmy o konkretach a nie o tym co "działa" w ubuntu! "OK!" cytując z jakiegos polskiego filmu. //niestety nie pamietam ktorego
*Jacekalex
Jak juz wspomniałem w poście nr 1 w wersji 2.6 wystrpuje identyczny blad.
Offline
Stabilne django przede wszystkim. Nie rozumiem czemu raz instalujesz stare z paczek, a potem zamiast brać stabilne to z svn. A stare z paczek przecież zadowalało. Ubuntu nie koniecznie, zamiast tego czytanie komunikatów. Np. "No module named psycopg" sprawdź czy masz taki moduł, pewnie nie bo masz psycopg2. Potem się dziwisz, że doinstalowałeś psycopg1 i zadziałało. Chcesz użyć psycopg2 skonfiguruj to w django. Sprawdź settings.py, DATABESES = { "...": { ENGINE: "django.db.backends.postgresql_psycopg2", ...} } . Tak masz, czy może jest inaczej? Polecam też poczytać dokumentację django, pythona. To co pisałem o tym, że mi działa chciałem rozwiać wątpliowści, że django niby nie działa z pythonem 2.7, zamiast którego trzeba używać 2.6. A tu zaraz krzyk.
Offline
Nie krzyczę, to po 1.
If you’re using PostgreSQL, you’ll need to install either the psycopg or psycopg2 package from ...
ta czesc brzmi dla mnie dosc jednoznacznie. Spójnik lub oznacza alternatywe a nie koniunkcje, jak zreszta mozna sie przekonac w repozytoriach debiana nie ma wersji 1.
Nastepnie
ImportError: No module named _psycopg
$ dpkg -L python-psycopg2 ... /usr/lib/python2.6/dist-packages/psycopg2/_psycopg.so ... /usr/lib/python2.7/dist-packages/psycopg2/_psycopg.so ...
zapewne chodzi o ten plik ale już
>>> os.chdir('/usr/lib/python2.6/dist-packages/psycopg2') >>> import _psycopg *** You don't have the (right) mxDateTime binaries installed ! Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: can't import mx.DateTime module
i http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=389636
zaleznosci, ktore rzekomo zostaly usuniete 5 lat temu.
Następnie:
Psycopg raises ImportError: cannot import name tz on import in mod_wsgi / ASP, but it works fine otherwise.
z http://initd.org/psycopg/docs/faq.html
bo i taki bład sie pojawia nawet bez uzycia wsgi ale zwyczajnie przy imporcie z poziomu interpretera.
Ustawienie tej zmiennej daje przysłowiowy guzik.
http://stackoverflow.com/questions/2192323/what-is- … hon-egg-cache
Tak wiec wyglada na to, ze jezeli nie zostanie to odpowiednio zrobione na poziomie opiekuna pakietu, który rzeczywiście wie co robi, to wszystko się sypie jak przysłowiowa choinka na wielkanoc.
Ale spokojnie na archu wszystko ładnie działa z postgres a jezeli bede musial pracowac na debianie to uzyje sqlite, ktore jak juz sprawdzilem nie sprawia zadnych problemow.
I na koniec donosze radosna nowine:
w katalogu /usr/lib/pythonx.y/dist-packages wystarczy stworzyc plik sudo vim psycopg2.pth z zawartoscia psycopg2 i:
$ python2.7 Python 2.7.1+ (default, Apr 20 2011, 10:53:33) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import psycopg2 >>> c=psycopg2.connect("dbname=nemodb user=nemo password=wszyscychcielibywiedziec") >>> cr=c.cursor() >>> cr.execute("select * from test;") >>> cr.fetchone() (1, 'hello')
Tyle szukania a tutaj taka bzdura, jestem zalamany ;-)
Offline