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ą, kuris suteikia daugybę privalumų, įskaitant:

  • Įdiekite savo programą per kelias sekundes su paprastu git push.
  • Naudokite savo domeno vardą ir pasinaudokite automatinės HTTPS sertifikatų konfigūracijos privalumais, kad padidintumėte saugumą.
  • Mėgaukitės ramybe su automatinėmis atsarginėmis kopijomis, vieno paspaudimo atnaujinimais ir paprasta, skaidria bei prognozuojama kainodara.
  • Gaukite optimalią veikimo ir tvirtą saugumo lygį dėka privačios ir dedikuotos VM.

Taupykite laiką ir supaprastinkite savo gyvenimą: išbandyti Stackhero Python cloud hosting sprendimą užtrunka tik 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ą.