Deploy no site vercel.com erro pip not found

Boa Tarde, eu estou tendo problemas para hospedar meu portfolio no site Vercel, também nunca fiz um deploy manual antes.

O meu site é feito em django, por hora só estou usando html e css mas pretendo usar python para fazer um pouco do backend.
Antes eu tive que mudar a versão do python para 3.9 pois o site só suporta essa.

Os erros são:
WARN! Due to 'builds' existing in your configuration file, the Build and Development Settings defined in your Project Settings will not apply. Learn More: https://vercel.link/unused-build-settings

./build_files.sh: line 1: pip: command not found

ModuleNotFoundError: No module named 'django'

Estou usando este site pois a hospedagem é gratuita e foi o único que encontrei kkkk

Já tentou isso?

Como alguém que já esteve desse lado, eu te diria para evitar estas PaaS e SaaS menores, é mais comum você esbarra em alguma limitações estúpida, documentação/comunidade fraca. Se o problema for custo, acho que todas as grandes tem algum free tier se não me engano (pode ser até mais interessante, pode agregar no curriculo que já trabalhou em AWS, etc).

1 curtida

eu dei uma olhada, e não era bem o erro que estava tendo.
Eu agradeço por tentar ajudar.

Hoje finalmente consegui resolver graças a um post no reddit eu acho.

Para configurar a uma serie de coisas para fazer mas as mais importantes são:

Criar o arquivo vercel.json na raiz da pasta do django:

{ "version": 2, "builds": [ { "src": "nome-projeto/wsgi.py", "use": "@vercel/python", "config": { "maxLambdaSize": "15mb", "runtime": "python3.9" } }, { "src": "build_files.sh", "use": "@vercel/static-build", "config": { "distDir": "staticfiles_build" } } ], "routes": [ { "src": "/static/(.*)", "dest": "/static/$1" }, { "src": "/(.*)", "dest": "nome-projeto/wsgi.py" } ] }

Criar o arquivo build_files.sh:

echo "BUILD START" python3.9 -m ensurepip python3.9 -m pip install -r requirements.txt python3.9 manage.py collectstatic --noinput --clear echo "BUILD END"

Criar a pasta staticfiles_build

Configurações dos arquivos do django:

wsgi.py adicionar:

app = application

No settings.py adicionar:

Comentar o banco de dados,

mudar o debug para false

STATICFILES_DIRS = os.path.join(BASE_DIR, 'static'), STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles_build', 'static')

Em urls.py adicionar:

urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

E o mais importante: troque o node.js nas configurações do vercel para 18x

1 curtida

Que bom que conseguiu, e meus pêsames também, pelo trabalho desnecessário, bah… Que erro genérico da p%$@#…

1 curtida

Caraca mano eu estou a 3 dias tentando colocar django no vercel, fazendo tudo certo como manda o figurino e nem o pip estava funcionando, essa dica do seu arquivo build que me salvou, na linha

python3.9 -m ensurepip

não tem nos tutoriais internacionais, foi só colocar essa linha que tudo resolveu!
ante eu estava recebendo o erro:

“ImportError: Couldn’t import Django. Are you sure it’s installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?”

Agora meu build_files.sh ficou assim:

echo " BUILD START"

python3.9 --version
python3.9 -m ensurepip # não aparece nos tutoriais internacionais
python3.9 -m pip install -r requirements.txt

echo " MAKE MIGRATIONS..."
python3.9 manage.py makemigrations --noinput
python3.9 manage.py migrate --noinput


python3.9 manage.py collectstatic --noinput --clear
echo " BUILD END"

Também criei um arquivo para fazer uma alteração no arquivo requirements.txt:

# pip_freeze.sh
# altera a linha "backports.zoneinfo==0.2.1" do 'requirements.txt"

pip freeze
pip freeze | iconv -f UTF-8  > requirements_temp.txt
cat requirements_temp.txt | awk '{sub(/backports\.zoneinfo\=\=0\.2\.1/,"backports.zoneinfo==0.2.1;python_version<\"3.9\"")}1' > requirements.txt

vlw d+

1 curtida

que bom que ajudou!