2022년 5월 22일 일요일

weditor 설치 방법, UnicodeDecodeError: 'cp949' 해결방법

weditor

openatx에서 만든 uianimator2에서 UI script를 쉽게 사용하기 위한 web app입니다. 해당 어플이 있으면 좀 더 쉽게 스크립트 작성이 가능합니다.

설치 방법은 pip install weditor 이라고 하면 되는데 종종 아래와 같은 오류가 발생합니다.


C:\Users>pip install weditor

Collecting weditor

  Downloading https://files.pythonhosted.org/packages/04/9b/ec6c2b8ab08fecd21d98121e2b91244632d1836669bb9c917ff01406bd1a/weditor-0.6.5.tar.gz (2.2MB)

     |████████████████████████████████| 2.2MB 3.3MB/s

    ERROR: Command errored out with exit status 1:

     command: 'c:\users\user\appdata\local\programs\python\python38\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\USER\\AppData\\Local\\Temp\\pip-install-mn6ozje2\\weditor\\setup.py'"'"'; __file__='"'"'C:\\Users\\USER\\AppData\\Local\\Temp\\pip-install-mn6ozje2\\weditor\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info

         cwd: C:\Users\USER\AppData\Local\Temp\pip-install-mn6ozje2\weditor\

    Complete output (22 lines):

    ERROR:root:Error parsing

    Traceback (most recent call last):

      File "c:\users\user\appdata\local\temp\pip-install-mn6ozje2\weditor\.eggs\pbr-5.9.0-py3.8.egg\pbr\core.py", line 111, in pbr

        attrs = util.cfg_to_args(path, dist.script_args)

      File "c:\users\user\appdata\local\temp\pip-install-mn6ozje2\weditor\.eggs\pbr-5.9.0-py3.8.egg\pbr\util.py", line 272, in cfg_to_args

        pbr.hooks.setup_hook(config)

      File "c:\users\user\appdata\local\temp\pip-install-mn6ozje2\weditor\.eggs\pbr-5.9.0-py3.8.egg\pbr\hooks\__init__.py", line 25, in setup_hook

        metadata_config.run()

      File "c:\users\user\appdata\local\temp\pip-install-mn6ozje2\weditor\.eggs\pbr-5.9.0-py3.8.egg\pbr\hooks\base.py", line 27, in run

        self.hook()

      File "c:\users\user\appdata\local\temp\pip-install-mn6ozje2\weditor\.eggs\pbr-5.9.0-py3.8.egg\pbr\hooks\metadata.py", line 25, in hook

        self.config['version'] = packaging.get_version(

      File "c:\users\user\appdata\local\temp\pip-install-mn6ozje2\weditor\.eggs\pbr-5.9.0-py3.8.egg\pbr\packaging.py", line 860, in get_version

        version = _get_version_from_pkg_metadata(package_name)

      File "c:\users\user\appdata\local\temp\pip-install-mn6ozje2\weditor\.eggs\pbr-5.9.0-py3.8.egg\pbr\packaging.py", line 828, in _get_version_from_pkg_metadata

        pkg_metadata = email.message_from_file(pkg_metadata_file)

      File "c:\users\user\appdata\local\programs\python\python38\lib\email\__init__.py", line 54, in message_from_file

        return Parser(*args, **kws).parse(fp)

      File "c:\users\user\appdata\local\programs\python\python38\lib\email\parser.py", line 53, in parse

        data = fp.read(8192)

    UnicodeDecodeError: 'cp949' codec can't decode byte 0xad in position 825: illegal multibyte sequence

    error in setup command: Error parsing C:\Users\USER\AppData\Local\Temp\pip-install-mn6ozje2\weditor\setup.cfg: UnicodeDecodeError: 'cp949' codec can't decode byte 0xad in position 825: illegal multibyte sequence


해당 어플이 unicode를 고려해서 작성되지 않았기 때문입니다.

이런경우 수동으로 설치하도록 합니다.

https://github.com/alibaba/web-editor 여기 접속해서 소스를 받아서 cfg 파일을 수정해도 되지만, 여기에서는 github에 있는 최신 버전을 설치해도 해결됩니다.

해결 방법은 아래와 같습니다.

pip install git+https://github.com/alibaba/web-editor.git


실행방법

weditor 만 실행시키고 자동으로 브라우저를 띄우면 됩니다. 다만 IE는 지원하지 않기 때문에 크롬으로 http://localhost:17310/ 주소를 열어줍니다. 포트 번호는 weditor를 실행시키면 로그에 나오게 됩니다.

C:\Users>weditor

listening on http://192.168.0.18:17310

[I 220522 14:48:29 web:2239] 200 GET / (::1) 251.33ms

[I 220522 14:48:30 web:2239] 200 GET /cdn.jsdelivr.net/bootstrap/3.3.7/css/bootstrap.min.css (::1) 1176.85ms

[I 220522 14:48:30 web:2239] 200 GET /cdn.jsdelivr.net/npm/jstree@3.3.8/dist/themes/default/style.min.css (::1) 9.98ms

[I 220522 14:48:30 web:2239] 200 GET /static/libs/css/buttons.css (::1) 22.94ms

[I 220522 14:48:30 web:2239] 200 GET /static/libs/fontawesome/css/font-awesome.min.css (::1) 32.91ms

[I 220522 14:48:30 web:2239] 200 GET /cdn.jsdelivr.net/bootstrap.select/1.12.2/css/bootstrap-select.min.css (::1) 37.90ms

[I 220522 14:48:30 web:2239] 200 GET /static/style.css?v=9f60773ea7a93488c91ffc68ab65f5401ef20f496b28d3354df7f635fdb4b8b94e0e4dcc476e74d4964d687c774abdb0e83341777dc0b483f3a338a5cd8db027 (::1) 44.88ms


이런식으로도 해결이 안되는 패키지가 있을 수 있습니다. 즉, 개발자가 git에 수정된 소스를 업데이트 하지 않은 경우입니다. 그런 경우 git에서 소스를 직접 받아서 직접 소스 수정한 후 로컬에서 설치합니다.


수정 방법

아래와 같이 open할때 마지막에 encoding="utf-8" 이런식으로 넣어 주면 됩니다.

output = open("output.txt", "wt", encoding="utf-8")


설치 방법 링크 참조

https://swlock.blogspot.com/2022/04/python-github-creating-and-installing.html

만약 소스 코드에 로컬에 있다면 아래와 같이 설치합니다.

python setup.py install


댓글 1개:

  1. 안녕하세요. 코린입니다. 혹시 weditor 실행을 어떻게 해야할지 몰라 남겨봅니다. 오류가 나던 중 글을 보고 해결했는데요PS C:\Users\user\Desktop\Project instar> weditor
    weditor : 'weditor' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이
    름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.
    위치 줄:1 문자:1
    + weditor
    + ~~~~~~~
    + CategoryInfo : ObjectNotFound: (weditor:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException.

    나와서 혹시 도움을 구할 수 있을까 싶어 남겨봅니다.

    답글삭제