INSTALAÇÃO LIMPA DO PYTHON 3.11 (Windows Server) – para Argos Translate / aprender Data: 2026-01-04 Objetivo - Instalar Python 3.11 corretamente (com stdlib “Lib/encodings”). - Garantir que pacotes com DLL (ex.: torch) funcionem (VC++ Runtime). - Criar venv do projeto e subir Argos (5100) + Node (3100). Pré-requisitos - Rodar PowerShell “Como Administrador”. - Ter internet liberada para baixar instaladores/modelos. PARTE A) LIMPEZA (se já houve instalações quebradas) 1) Desinstalar Python(s) - Abra: Painel de Controle > Programas > Desinstalar um programa - Remova tudo que for “Python 3.x” (e “Python Launcher” se existir). 2) Apagar pastas antigas (se existirem) - Apague (exemplos comuns): C:\Python311 C:\Python311_full C:\Program Files\Python311 C:\Users\\AppData\Local\Programs\Python\Python311 C:\Users\\AppData\Local\Microsoft\WindowsApps\python.exe (atalho) 3) Conferir que não sobrou python no PATH ```powershell where.exe python where.exe py ``` - Se ainda aparecer algo, revise o PATH (Variáveis de Ambiente) e remova entradas antigas. PARTE B) INSTALAÇÃO DO PYTHON 3.11 (ALL USERS) 1) Forçar TLS 1.2 e baixar o instalador oficial ```powershell [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $ver = "3.11.9" $url = "https://www.python.org/ftp/python/$ver/python-$ver-amd64.exe" $exe = "$env:TEMP\python-$ver-amd64.exe" Invoke-WebRequest -Uri $url -OutFile $exe -UseBasicParsing ``` 2) Instalar silenciosamente (para todos os usuários) ```powershell Start-Process -FilePath $exe -ArgumentList "/quiet","InstallAllUsers=1","PrependPath=1","Include_pip=1","Include_lib=1","Include_test=0" -Wait ``` 3) Abrir um PowerShell NOVO (para pegar o PATH) e validar ```powershell where.exe python python -V python -c "import encodings; print('OK encodings')" ``` Se “python não é reconhecido” na mesma janela: - Reabra o PowerShell, OU recarregue o PATH na sessão atual: ```powershell $env:Path = [Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [Environment]::GetEnvironmentVariable("Path","User") where.exe python python -V ``` PARTE C) VC++ RUNTIME (necessário para DLLs, ex.: torch/c10.dll) SINTOMA - Erro ao subir Argos ou ao fazer `import torch`, por exemplo: WinError 1114 / erro carregando c10.dll SOLUÇÃO: instalar Microsoft Visual C++ Redistributable 2015-2022 (x64) ```powershell [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $url = "https://aka.ms/vs/17/release/vc_redist.x64.exe" $exe = "$env:TEMP\vc_redist.x64.exe" Invoke-WebRequest -Uri $url -OutFile $exe -UseBasicParsing Start-Process -FilePath $exe -ArgumentList "/install","/quiet","/norestart" -Wait ``` Validação opcional (se torch estiver instalado): ```powershell python -c "import torch; print(torch.__version__)" ``` PARTE D) VENV DO PROJETO (Argos Translate) + DEPENDÊNCIAS Pasta do projeto (ajuste se necessário): - C:\xampp\htdocs\hepsistemas\aprender\translate_server 1) Criar venv ```powershell cd "C:\xampp\htdocs\hepsistemas\aprender\translate_server" & "C:\Program Files\Python311\python.exe" -m venv .venv ``` 2) Atualizar pip ```powershell .\.venv\Scripts\python -m pip install -U pip wheel setuptools ``` 3) Instalar dependências do projeto IMPORTANTE: usar `requirements.txt` fixando Argos < 1.10 para evitar puxar dependências pesadas desnecessárias. Conteúdo recomendado do `requirements.txt`: - flask>=3.1.0 - flask-cors>=6.0.0 - requests>=2.31.0 - argostranslate>=1.9.6,<1.10 Instalação: ```powershell .\.venv\Scripts\python -m pip install -r .\requirements.txt ``` 4) Subir Argos (porta 5100) ```powershell .\.venv\Scripts\python .\argos_service.py ``` 5) Testar Argos Em outra janela: ```powershell Invoke-RestMethod http://127.0.0.1:5100/health ``` Obs: - Se `installed` vier vazio, está OK: significa que ainda não instalou modelos. - O Node instala modelos sob demanda no primeiro uso (pode demorar). PARTE E) NODE (porta 3100) + TESTES 1) Subir Node Em outra janela: ```powershell cd "C:\xampp\htdocs\hepsistemas\aprender\translate_server" node .\server.js ``` 2) Testar saúde do Node ```powershell Invoke-RestMethod http://127.0.0.1:3100/health ``` 3) Testar tradução local (Node -> Argos) ```powershell $body = @{ text = "ola mundo"; source = "pt"; target = "en" } | ConvertTo-Json -Compress Invoke-RestMethod -Method Post "http://127.0.0.1:3100/api/translate" -ContentType "application/json" -Body $body ``` PARTE F) HTTPS (Apache/XAMPP) – PROXY PARA EVITAR MIXED CONTENT Problema - Página em HTTPS não pode chamar http://127.0.0.1:3100 diretamente (mixed content). Solução - Proxy no Apache: /aprender/api/translate -> http://127.0.0.1:3100/api/translate 1) Habilitar módulos no Apache Arquivo: C:\xampp\apache\conf\httpd.conf - Garantir SEM #: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so 2) Adicionar ProxyPass no vhost SSL Arquivo: C:\xampp\apache\conf\extra\httpd-ssl.conf Dentro do do domínio: ProxyPreserveHost On ProxyRequests Off ProxyPass "/aprender/api/translate" "http://127.0.0.1:3100/api/translate" ProxyPassReverse "/aprender/api/translate" "http://127.0.0.1:3100/api/translate" 3) Reiniciar Apache - XAMPP Control Panel (xampp-control.exe): Stop/Start no Apache OU PowerShell (Admin): ```powershell Restart-Service -Name "Apache2.4" ``` 4) Testar via HTTPS (PowerShell 5.1 precisa TLS 1.2) ```powershell [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $body = @{ text = "ola mundo"; source = "pt"; target = "en" } | ConvertTo-Json -Compress Invoke-RestMethod -Method Post "https://www.hepsistemas.com.br/aprender/api/translate" -ContentType "application/json" -Body $body ``` Se aparecer erro no Apache: - Ver log: C:\xampp\apache\logs\hepsistemas-ssl-error.log - Erro típico quando falta proxy_http: AH01144: No protocol handler was valid ... (scheme 'http') DICAS PRÁTICAS - Deixe 2 janelas abertas: 1) Argos rodando (5100) 2) Node rodando (3100) - A primeira tradução de um par novo pode demorar (download/instalação do modelo). - Para “reiniciar do zero” os serviços: feche as janelas e rode novamente os comandos.