吐槽, 用 pycharm 跑 flask 遇到各种空格路径问题...

360 天前
 chackchackGO

用 pycharm 跑 flask 遇到各种空格路径问题.
只能用 vscode 来跑. 但是还要同时用 pycharm 来看函数 usages 之类的高级 feature....

2774 次点击
所在节点    Flask
18 条回复
b2504420230
360 天前
表示一直用 pycharm 跑 flask ;没遇到这种问题啊。问题说清楚点呗;带错误栈
chackchackGO
360 天前
jetbrains 相关讨论: https://intellij-support.jetbrains.com/hc/en-us/community/posts/11602067518226-C-Program-Files-Python311-python-exe-can-t-open-file-C-Program-Errno-2-No-such-file-or-directory

我刚想给你复现, 努力还原了所有情况, 但是问题消失了... : C
赛博闹鬼了, 之后复现就跟您看..
chackchackGO
360 天前
@b2504420230
原问题虽然没了(原问题是根本无法运行).
但是新问题是无法访问数据库.
同样的配置下 vscode 却可以.
(确定了运行路径无误.)
```
Traceback (most recent call last):
File "C:\Users\test\miniconda3\lib\site-packages\flask\app.py", line 2213, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\test\miniconda3\lib\site-packages\flask\app.py", line 2193, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\test\miniconda3\lib\site-packages\flask\app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\test\miniconda3\lib\site-packages\flask\app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\test\miniconda3\lib\site-packages\flask\app.py", line 1484, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\test\miniconda3\lib\site-packages\flask\app.py", line 1469, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "C:\Users\test\Desktop\workSpace\Y36_1204\iMusic\iMusic.py", line 23, in statistics
genres = get_genres()
File "C:\Users\test\Desktop\workSpace\Y36_1204\iMusic\iMusic.py", line 231, in get_genres
conn = sqlite3.connect("iMusic.db")
sqlite3.OperationalError: unable to open database file
```
b2504420230
360 天前
几个问题
1. pycharm 给管理员权限了吗;
2. 不用虚拟环境吗?
ZZ74
360 天前
我觉得正确的吐槽对象应该是 python 本身,用缩进对齐取代;之类的符号
ISOtropy
360 天前
@ZZ74 这是 Python 的简洁优势吧 个人感觉 Python 敲起来真爽 看作者原贴 应该是找不到 c 盘那个文件的目录 是 pycharm 的原因
TArysiyehua
360 天前
感觉就是楼主没配置好。。。
0xsui
360 天前
搞清楚 db 文件的路径,善用调试 debug ,实在不会处理就写绝对路径。。。
renmu
360 天前
怕不是数据库用得相对路径,然后启动参数不是在数据库的文件夹。
ps:用哪个编辑器跑代码还会影响结果的吗
nagisaushio
360 天前
@ZZ74 楼主又没提缩进的问题,这是在吐槽什么
TArysiyehua
360 天前
@renmu run 的时候 config 配置相关的,估计楼主也不太懂 python 项目管理的相关配置。理论上跟 IDE 是没有关系的
chackchackGO
360 天前
@b2504420230
1. 没给管理员权限, 没设想过有情景会需要 root.
2. 以前用 conda env 或者 venv 之类的虚拟环境, 发现似乎在`pip install`时不会智能的从其他环境已有的包拉取数据, 而是都一股脑从网络拉取, 效率很的样子.
就一直用一个大环境, 后续再考虑 requirements.txt 怎么搞.

根据楼下的提示发现确实是 pycharm 的 config 执行目录问题. 默认居然是 `pycharm/bin`目录...
chackchackGO
360 天前
@TArysiyehua
@renmu
@0xsui
非常感谢, 确实是执行路径问题
用` print(Path.cwd())`命令 debug 发现 pycharm 的 run, 默认运行路径居然是`pycharm/bin`而不是 project 目录.
chackchackGO
360 天前
@renmu 有时候需要用 pycharm 的高级 feature 而 vscode 没有的.
例如看某个函数的 usages.
kuanat
359 天前
楼主这个是非常简单的 cwd 的问题。

也许是现在大家写代码都过于依赖自动化工具,基础的东西反倒不知道了。不是说楼主,这种情况非常常见。我举几个例子:

- 即便大厂的项目,搞不清外部依赖的比比皆是,特别是 python 类的机器学习项目,鲜有能做好工程化的

- 各种所谓的跨平台工具,处理不好路径的正反斜杠,即使用心处理了,很大概率也是硬编码而不是用系统级的 path 方法

- 外表绚丽的 i18n 结果内部实现竟然不是 rune

反正大家都是草台班子……
cz5424
359 天前
工作目录 pycharm 是可以设置的。默认我记得不是 pycharm/bin ,楼主自己设置错了吧
bill110100
358 天前
@tlsmars009 敲起来爽,改起来火葬场,尤其多层 if ,for 循环嵌套,没改好全报错。
llsquaer
358 天前
你这个情况多半是 pycharm 的工作目录设置错误了,或者你中途改过工作目录。设置里改回去就行了。
简单的方法是删除 .idea 文件夹,在重新打开 pycharm

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/998973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX