2013-02-23 13 views
7

biegałam heroku push master i dostał to:ręcznie usunąć pakiet Pythona na Heroku

----- Python app detected 
----- No runtime.txt provided; assuming python-2.7.3. 
----- Using Python runtime (python-2.7.3) 
----- Installing dependencies using Pip (1.2.1) 
     Downloading/unpacking Django-1.5c2 from https://www.djangoproject.com/download/1.5c2/tarball (from -r 
                              requirements.txt (line 1)) 
      Cannot determine compression type for file /tmp/pip-rYIGHS-unpack/tarball.ksh 
      Running setup.py egg_info for package Django-1.5c2 

     Installing collected packages: Django-1.5c2 
      Running setup.py install for Django-1.5c2 
      changing mode of build/scripts-2.7/django-admin.py from 600 to 755 

      changing mode of /app/.heroku/python/bin/django-admin.py to 755 


      ======== 
      WARNING! 
      ======== 

      You have just installed Django over top of an existing 
      installation, without removing it first. Because of this, 
      your install may now include extraneous files from a 
      previous version that have since been removed from 
      Django. This is known to cause a variety of problems. You 
      should manually remove the 

      /app/.heroku/python/lib/python2.7/site-packages/django 

      directory and re-install Django. 

     Successfully installed Django-1.5c2 

Jak mogę usunąć poprzedni pakiet Django?

UPDATE: Moja requirements.txt:

https://www.djangoproject.com/download/1.5c2/tarball/**#egg=django** 
South==0.7.6 
argparse==1.2.1 
distribute==0.6.24 
dj-database-url==0.2.1 
psycopg2==2.4.6 
wsgiref==0.1.2 
PIL==1.1.7 

Tekst tłustym ustalonym wyżej ostrzeżenia.

UPDATE 2: Ponieważ Django 1.5 został oficjalnie wydany, po prostu stosować Funkcja PIP:

Django==1.5 
South==0.7.6 
argparse==1.2.1 
distribute==0.6.24 
dj-database-url==0.2.1 
psycopg2==2.4.6 
wsgiref==0.1.2 
PIL==1.1.7 
+0

W jaki sposób Django jest określone w pliku 'requirements.txt'? Czy mówisz, żeby użyć konkretnej wersji? – culix

+0

Proszę zobaczyć aktualizację powyżej. – blaze

+0

@metroksylon Sprawdź, co dzieje się z twoją dyno, gdy naciskasz zmiany 'heroku logs -t'. Spróbuj usunąć 'Django == 1.5' z wymogu, commit, push do heroku, a następnie dodaj i zatwierdz z django. – nk9

Odpowiedz

14

miałem problemy gdzie Heroku buforuje połamane pakietów i nie ma sposobu, aby się ich pozbyć. Paczka Build Pythona powinna mieć pewien rodzaj wsparcia dla spłukiwania tej pamięci podręcznej (CACHE_DIR), ale tak się nie dzieje.

Istnieje obejście: wykonaj these instructions, aby zmienić środowisko wykonawcze Python na, na przykład, 3.3.0 (nie ma znaczenia, czy twoja aplikacja faktycznie obsługuje język Python 3, czy nie). Następnie zmień go z powrotem na domyślny. Akt zmiany środowiska wykonawczego Python, a następnie jego wdrożenia, zmusi buildpack do całkowitego usunięcia pamięci podręcznej. O ile mi wiadomo, jest to jedyny praktyczny sposób na usunięcie pamięci podręcznej w tej chwili.

+1

Naprawiono problem dla mnie. Próbowałem ręcznie uruchamiając 'heroku run pip uninstall my_package', które" działało "(nie zawodziło), ale pakiet nadal znajdował się w systemie i powodował problemy. Dzięki za wskazówkę! – Micah

+0

To już nie działa. –

+0

Tak, nadal działa od dzisiaj. Zmiana (lub dodanie po raz pierwszy) runtime.txt, a następnie ponowne wdrożenie powoduje, że Heroku tworzy nowe środowisko uruchomieniowe, skutecznie niszcząc wszelkie dotychczasowe problemy, takie jak odmowa zastąpienia wcześniej zainstalowanych pakietów z PYPI inną wersją tego samego pakietu z adresu URL github. –

0

push aktualny virtenv pakiet złożyć

pip freeze > requirements.txt 

Commit

git commit -am 'update packages' 

I push to heroku

git push heroku 

I herocu odbudować środowisko

Counting objects: 13, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (11/11), done. 
Writing objects: 100% (13/13), 1.26 KiB, done. 
Total 13 (delta 3), reused 0 (delta 0) 
-----> Python app detected 
-----> No runtime.txt provided; assuming python-2.7.3. 
-----> Preparing Python runtime (python-2.7.3) 
-----> Installing Distribute (0.6.34) 
-----> Installing Pip (1.2.1) 
-----> Installing dependencies using Pip (1.2.1) 
Downloading/unpacking Flask==0.9 (from -r requirements.txt (line 1)) 
Running setup.py egg_info for package Flask 
+0

Tak właśnie zrobiłem (z wyjątkiem zewnętrznego jajka). Zostanie zaktualizowany moim request.txt – blaze