使用命令 "pipenv run python" 时出现回溯错误
I get a traceback error when using the command "pipenv run python"
更新:问题来自创建 .virtualenv 目录的路径中的特殊字符。我通过在 C: 中重新路由 .virtualenv 来修复它,最终将编辑用户名以避免将来出现此问题。
我在工作笔记本电脑 (windows 专业版) 上使用“pipenv 运行”时遇到了一些问题,似乎找不到对我的问题的解释。例如,我在桌面上创建了一个测试目录,其中放置了一个打印“Hello”的基本脚本。
我在项目文件夹中启动 pipenv,它工作正常,我可以启动 shell、安装包、运行 脚本(在 shell 中)等..
但是,每当我尝试从主命令提示符 运行 脚本时(不在 pipenv shell 内部):
C:\Users\jérôme\Desktop\tester> pipenv run python testit.py
一些其他细节:
- 运行在我的个人机器(windows 家庭版)上执行上述命令工作正常
- 我之前做了“pipenv lock”来检查它是否可能是问题所在。不是
- 我在两台机器上都使用 python 3.7.9
- Python 已添加到安装时的路径变量中
- 我也尝试使用 python 3.8.6 并得到同样的错误
- 我尝试完全卸载所有 python 版本并重新安装它
- 我工作机器上的用户名是特殊字符 (é, ô) 会不会是这个原因?
回溯错误...
Traceback (most recent call last):
File "c:\users\jérôme\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\jérôme\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\jérôme\Python37\Scripts\pipenv.exe\__main__.py", line 7, in <module>
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\cli\command.py", line 450, in run
command=command, args=args, three=state.three, python=state.python, pypi_mirror=state.pypi_mirror
File "c:\users\jérôme\python37\lib\site-packages\pipenv\core.py", line 2547, in do_run
run_fn(*run_args, **run_kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\core.py", line 2468, in do_run_nt
p = _launch_windows_subprocess(script)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\core.py", line 2458, in _launch_windows_subprocess
return subprocess.Popen([command] + script.args, **options)
File "c:\users\jérôme\python37\lib\subprocess.py", line 800, in __init__
restore_signals, start_new_session)
File "c:\users\jérôme\python37\lib\subprocess.py", line 1207, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
问题的根本原因是用户目录路径中的特殊字符,其中pipenv的.virtualenv目录也是默认创建的。 OP 报告已通过在 C:
中重新路由 .virtualenv 来解决问题
快速测试,例如c:\tmp
可以帮助排除这个原因。
我有这个问题,我通过卸载 anaconda 解决了它。
更新:问题来自创建 .virtualenv 目录的路径中的特殊字符。我通过在 C: 中重新路由 .virtualenv 来修复它,最终将编辑用户名以避免将来出现此问题。
我在工作笔记本电脑 (windows 专业版) 上使用“pipenv 运行”时遇到了一些问题,似乎找不到对我的问题的解释。例如,我在桌面上创建了一个测试目录,其中放置了一个打印“Hello”的基本脚本。
我在项目文件夹中启动 pipenv,它工作正常,我可以启动 shell、安装包、运行 脚本(在 shell 中)等..
但是,每当我尝试从主命令提示符 运行 脚本时(不在 pipenv shell 内部):
C:\Users\jérôme\Desktop\tester> pipenv run python testit.py
一些其他细节:
- 运行在我的个人机器(windows 家庭版)上执行上述命令工作正常
- 我之前做了“pipenv lock”来检查它是否可能是问题所在。不是
- 我在两台机器上都使用 python 3.7.9
- Python 已添加到安装时的路径变量中
- 我也尝试使用 python 3.8.6 并得到同样的错误
- 我尝试完全卸载所有 python 版本并重新安装它
- 我工作机器上的用户名是特殊字符 (é, ô) 会不会是这个原因?
回溯错误...
Traceback (most recent call last):
File "c:\users\jérôme\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\jérôme\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\jérôme\Python37\Scripts\pipenv.exe\__main__.py", line 7, in <module>
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\vendor\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\cli\command.py", line 450, in run
command=command, args=args, three=state.three, python=state.python, pypi_mirror=state.pypi_mirror
File "c:\users\jérôme\python37\lib\site-packages\pipenv\core.py", line 2547, in do_run
run_fn(*run_args, **run_kwargs)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\core.py", line 2468, in do_run_nt
p = _launch_windows_subprocess(script)
File "c:\users\jérôme\python37\lib\site-packages\pipenv\core.py", line 2458, in _launch_windows_subprocess
return subprocess.Popen([command] + script.args, **options)
File "c:\users\jérôme\python37\lib\subprocess.py", line 800, in __init__
restore_signals, start_new_session)
File "c:\users\jérôme\python37\lib\subprocess.py", line 1207, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
问题的根本原因是用户目录路径中的特殊字符,其中pipenv的.virtualenv目录也是默认创建的。 OP 报告已通过在 C:
中重新路由 .virtualenv 来解决问题快速测试,例如c:\tmp
可以帮助排除这个原因。
我有这个问题,我通过卸载 anaconda 解决了它。