![](/img/trans.png)
[英]How to fix UnicodeDecodeError when inserting in a TreeView in Python?
[英]How to fix 'UnicodeDecodeError' in 'envreport' when running tox?
我想使用tox來自動測試我的python包。 截至目前,僅在本地。 運行Tox時,測試通過,但隨后引發UnicodeDecodeError。 tox --version
是3.13.2。
錯誤消息(下面是完整的回溯):
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 70: invalid continuation byte
當運行tox
,測試成功,這是我期望的-vvvvvv
可視化。 這些功能什么都不做,目前只是一個虛擬對象(使用cookiecutter-pypackage自動創建)。 我將envlist中的項目減少為py37。 Anaconda在我的PATH
變量中,沒有安裝常規的python。 我嘗試通過編寫.bat(我使用的是Windows)來使用不同的python版本,就像在正式的tox文檔上一樣。 這與py37相同。 測試通過,並引發以下情況。
我在tox文檔中找不到有關UnicodeDecodeErrors
任何內容。
無論是PowerShell的或命令行我可以執行export LANG=en_US.UTF-8
作為建議這個職位。 在tox.ini
設置setenv = LANG=en_US.UTF-8
也沒有任何改變。
下面的Traceback適用於py37
環境,該環境在將skipdist = true
添加到tox.ini
時被調用。 忽略該錯誤仍將返回完全相同的錯誤,並且回溯幾乎相同。
該錯誤從codecy.py
文件拋出。 在Traceback中向上移動並查看每個文件並沒有幫助我,因為我無法找到哪個文件被編碼或其他什么可以幫助。 如果沒有成功創建virtualenv來發布整個控制台輸出,則可能會有幫助。 該錯誤會在摘要中引發在envreport
上。 如果重要,則不會安裝tox-envreport
。 測試sdist時,它位於GLOB sdist-make:
部分中。
py37 finish: finishvenv after 0.02 seconds
py37 start: envreport
setting PATH=C:\Users\cosmo\OneDrive - Universität zu Köln\package\.tox\py37\Scripts;C:\Users\cosmo\Anaconda3;C:\Users\cosmo\Anaconda3\Library\mingw-w64\bin;C:\Users\cosmo\Anaconda3\Library\usr\bin;C:\Users\cosmo\Anaconda3\Library\bin;C:\Users\cosmo\Anaconda3\Scripts;C:\Users\cosmo\Anaconda3\bin;C:\Users\cosmo\Anaconda3\condabin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Docker\Docker\Resources\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\Git\cmd;C:\Program Files\MATLAB\R2019a\bin;C:\Program Files\PuTTY;C:\Program Files\MiKTeX 2.9\miktex\bin\x64;C:\Users\cosmo\AppData\Local\Microsoft\WindowsApps;C:\Users\cosmo\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\cosmo\AppData\Local\GitHubDesktop\bin;C:\Users\cosmo\Anaconda3\Scripts;C:\Users\cosmo\Anaconda3;.
[7836] C:\Users\cosmo\OneDrive - Universität zu Köln\package$ 'C:\Users\cosmo\OneDrive - Universität zu Köln\package\.tox\py37\Scripts\python.EXE' -m pip freeze >.tox\py37\log\py37-0.log
_________________________________________________________________________ summary __________________________________________________________________________
py37: commands succeeded
congratulations :)
Traceback (most recent call last):
File "c:\users\cosmo\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\cosmo\anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\cosmo\Anaconda3\Scripts\tox.exe\__main__.py", line 9, in <module>
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\session\__init__.py", line 44, in cmdline
main(args)
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\session\__init__.py", line 68, in main
exit_code = session.runcommand()
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\session\__init__.py", line 192, in runcommand
return self.subcommand_test()
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\session\__init__.py", line 220, in subcommand_test
run_sequential(self.config, self.venv_dict)
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\session\commands\run\sequential.py", line 20, in run_sequential
runenvreport(venv, config)
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\session\commands\run\sequential.py", line 60, in runenvreport
packages = config.pluginmanager.hook.tox_runenvreport(venv=venv, action=action)
File "c:\users\cosmo\anaconda3\lib\site-packages\pluggy\hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "c:\users\cosmo\anaconda3\lib\site-packages\pluggy\manager.py", line 87, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "c:\users\cosmo\anaconda3\lib\site-packages\pluggy\manager.py", line 81, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "c:\users\cosmo\anaconda3\lib\site-packages\pluggy\callers.py", line 208, in _multicall
return outcome.get_result()
File "c:\users\cosmo\anaconda3\lib\site-packages\pluggy\callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "c:\users\cosmo\anaconda3\lib\site-packages\pluggy\callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\venv.py", line 780, in tox_runenvreport
output = venv._pcall(args, cwd=venv.envconfig.config.toxinidir, action=action, returnout=True)
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\venv.py", line 574, in _pcall
report_fail=not is_test_command,
File "c:\users\cosmo\anaconda3\lib\site-packages\tox\action.py", line 107, in popen
lines = out_path.read_text("UTF-8").split("\n")
File "c:\users\cosmo\anaconda3\lib\site-packages\py\_path\common.py", line 165, in read_text
return f.read()
File "c:\users\cosmo\anaconda3\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 70: invalid continuation byte
我的問題:
只是一個猜測。 將您的應用程序放在此文件夾之外:OneDrive-UniversitätzuKöln我認為是Köln中的問題。
這是很好的回溯,可以感覺到錯誤報告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.