transparencia-mg / dpckan

MIT License
5 stars 4 forks source link

Problemas para utilizar `pip install -e .` em Windows #119

Closed gabrielbdornas closed 2 years ago

gabrielbdornas commented 2 years ago

@fjuniorr, Issue criado com a intenção de documentar erro durante a utilização do comando pip install -e . e sua solução. Observação importante: comando pip install <package-name> funcionando normalmente.

Durante processo de configuração/Setup de máquina Windows tentei utilizar o comando pip install -e . para testes durante o desenvolvimento do pacote dpckan, tendo recebido o seguinte erro:

m7522667@D03GC5254264786 MINGW64 ~/Documents/code/dpckan (dev)
$ pip install -e .
Obtaining file:///C:/Users/m7522667/Documents/code/dpckan
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'error'
  ERROR: Command errored out with exit status 1:
   command: 'C:\Users\m7522667\Documents\code\dpckan\venv\Scripts\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\m7522667\\Documents\\code\\dpckan\\setup.py'"'"'; __file__='"'"'C:\\Users\\m7522667\\Documents\\code\\dpckan\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\m7522667\AppData\Local\Temp\pip-pip-egg-info-y6pajn71'
       cwd: C:\Users\m7522667\Documents\code\dpckan\
  Complete output (7 lines):
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\m7522667\Documents\code\dpckan\setup.py", line 17, in <module>
      long_description=open('README.md').read() + '\n\n' + open('CHANGELOG.md').read(),
    File "C:\Program Files\Python310\lib\encodings\cp1252.py", line 23, in decode
      return codecs.charmap_decode(input,self.errors,decoding_table)[0]
  UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3530: character maps to <undefined>
  ----------------------------------------
WARNING: Discarding file:///C:/Users/m7522667/Documents/code/dpckan. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
(venv)

A primeira tentative de pesquisa foi para a mensagem "ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.", não tendo conseguido nenhum resultado pertinente.

Perguntei para @fjuniorr se ele se lembrava de algo similar em sua máquina e ele informou que se lembrava de algum problema com encoding. Pesquisei então " UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3530: character maps to ". Neste post Stackoverflow encontrei uma sugestão para utilizar encoding='UTF-8' em chamada de funções para leitura de arquivos. Percebi então que parte do erro relatava problemas na interpretação dos arquivos README.md e CHANGELOG.md:

File "C:\Users\m7522667\Documents\code\dpckan\setup.py", line 17, in <module>
      long_description=open('README.md').read() + '\n\n' + open('CHANGELOG.md').read(),

Modifiquei a linha 17 do arquivo setup.py para:

long_description=open('README.md', encoding='utf-8').read() + '\n\n' + open('CHANGELOG.md', encoding='utf-8').read(),

Após esta modificação instalação pip instal -e .funcionou normalmente.

gabrielbdornas commented 2 years ago

@fjuniorr, realizei a modificação, favor testar para certificarmos que nenhum erro ocorrerá na instalação no MAC

fjuniorr commented 2 years ago

Não cheguei a testar, mas como o Macosx também usa UTF-8 por default, não acho que vamos ter problemas.

O que pode sim acontecer é que esses arquivos não estejam codificados como UTF-8 porque o usuário não os salvou como tal. Nesse caso, vamos ter problemas de mojibake nos conjuntos publicados no CKAN.