Python: Trikčių šalinimas

Susidūrėte su problema savo Python paslaugoje? Sprendimas tikriausiai yra čia!

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti Python cloud sprendimą, sukurtą tam, kad jūsų diegimo procesas būtų kuo paprastesnis:

  • Diekite savo aplikaciją į gamybinę aplinką per kelias sekundes su paprastu git push.
  • Naudokite savo pasirinktą domeno vardą, su automatiniu HTTPS sertifikato konfigūravimu – saugūs ryšiai bus užtikrinti automatiškai.
  • Pasikliaukite automatinėmis atsarginėmis kopijomis, atnaujinimais vienu paspaudimu ir prognozuojama kainodara, kad galėtumėte susitelkti į savo kodą, o ne infrastruktūros valdymą.
  • Naudokitės aukštu našumu ir saugumu privačioje, dedikuotoje infrastruktūroje. Jūsų aplinka yra izoliuota ir apsaugota.

Taupykite laiką ir supaprastinkite savo darbo eigą: jūsų kodas gali veikti Stackhero Python cloud hosting platformoje vos per 5 minutes.

Stackhero Python debesų prieglobos paslauga yra sukurta būti paprasta, tačiau kartais gali kilti iššūkių. Žemiau pateikiamas vadovas, padėsiantis išspręsti klaidas, su kuriomis galite susidurti.

Galite susidurti su šia klaida diegiant programą:

error: failed to push some refs to '[...]'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Šis pranešimas rodo, kad jūsų vietinis Git saugykla nėra sinchronizuota su nuotoline saugykla Stackhero. Norėdami tai išspręsti, galite perrašyti dabartinę būseną nuotolinėje saugykloje naudodami šią komandą:

git push -f stackhero main

Kai diegiate kodą naudodami git push stackhero main, galite susidurti su šia klaida:

error: src refspec main does not match any
error: failed to push some refs to 'ssh://<XXXXXX>.stackhero-network.com:222/project.git'

Ši klaida rodo, kad main šaka vietoje neegzistuoja. Vietoj to, gali tekti stumti master šaką. Galite pabandyti šią komandą:

git push stackhero master

Git gali rodyti Everything up-to-date, kai nėra aptinkama jokių pakeitimų tarp jūsų vietinio kodo ir kodo Stackhero.

Jei atlikote pakeitimus, bet pamiršote juos įsipareigoti, šios komandos gali padėti:

git add -A .
git commit -m "Jūsų įsipareigojimo pranešimas"
git push stackhero main

Jei nebuvo atlikta jokių realių pakeitimų, bet vis tiek norite inicijuoti diegimą, apsvarstykite šį metodą:

git commit --allow-empty -m "Force update"
git push stackhero main

Patobulinta Makefile versija gali automatizuoti šį procesą. Su šia versija galite diegti naudodami paprastą make deploy komandą, net jei nėra aptinkama jokių kodo pakeitimų.

Ši klaida rodo, kad arba Makefile trūksta jūsų projekto šaknyje, arba esamas Makefile nenurodo run tikslo.

Norėdami tai išspręsti, galite sukurti Makefile savo projekto šakniniame kataloge su šiuo pavyzdiniu turiniu:

run:
	ENV=production gunicorn app:app \
	--error-logfile - \
	-b 0.0.0.0:8080

Šis scenarijus paleidžia Gunicorn serverį, vykdo app.py failą su Flask instancija app ir klausosi 8080 prievade.

Apsvarstykite galimybę naudoti patobulintą Makefile, kad supaprastintumėte savo vystymo aplinkos paleidimą ir programos diegimą.

Klaida make: *** missing separator atsiranda Makefile, kai tabuliacijos simbolis pakeičiamas tarpais prieš komandą. Kiekviena komanda Makefile turi būti prieš ją einančia tabuliacija, o ne tarpais.

Norėdami ištaisyti šią klaidą, įsitikinkite, kad prieš jūsų komandas yra tabuliacijos simbolis (ne tarpai):

run:
<tab>command

Pakeiskite <tab> tikru tabuliacijos simboliu, kad išspręstumėte problemą.