环境:win10、python3.8
最近在pycharm项目里面需要安装celery, 一开始是通过,命令行 pip install celery安装,安装成功,pip list 也可以看到。但是,在pycharm里就无法导包。
翻了不知多少页面 也没找到答案,最后,踏破铁鞋无觅处。有一种解决方法是把,把项目环境 从python.exe换成pythonw.exe。
先解释一下这两个的区别:
python.exe在运行程序的时候,会弹出一个黑色的控制台窗口(也叫命令行窗口、DOS/CMD窗口);
pythonw.exe是无窗口的Python可执行程序,意思是在运行程序的时候,没有窗口,代码在后台执行。
上面的是所谓的区别。。。但是感觉并不能解释我遇到的问题。。。
然后,我就把项目的虚拟环境换成指向pythonw(默认是指向python),发现 并没有显示出celery, 但是通过pycharm 的settings project interpreter里面安装celery 就成功了。
此时,我通过命令行把celery卸载掉,发现在pycharm project interpreter里面celery依然存在。然后,我反复试 通过命令行和 pycharm project interpreter(环境指定使用的是pythonw)这两者安装celery,发现这两者是隔离的。互相好像没有影响。
我去虚拟路径目录下 site-packages 发现只有一个celery目录(我的预期是 应该有两套celery,因为上述通过两个方式安装,而且互相不影响)。截至发文,还在困惑中。可能这个问题不仅限于celery这一个库。这个应该是一个共性问题。但是解决这个问题根源还没找到。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上面的问题答案找到了。。。我这个项目是移动过,从一个路径copy过来的,然后我设置了project interpreter,本以为,terminal会跟着识别当前路径下的env,结果在开发出bug的时候,我看到错误的路径竟然是原来的路径,我恍然大悟,terminal的运行环境还是老的项目的路径,可是有一个疑问,我之前每次安装的库都是通过terminal安装的,在project interpreter里面也是相应安装好的,都有的(明明是两个虚拟化您环境),这是为什么?然后我就暴力把老路径的项目给delete了,准备重新进到现在的项目目录下activate一下,本以为可以把原来的给覆盖掉,结果报一个错:
1 1 (env) C:\Users\dell\Desktop\op_data\env\Scripts>pip list 2 2 Fatal error in launcher: Unable to create process using '"c:\users\dell\desktop\induce\env\scripts\python.exe" "C:\Users\dell\Desktop\op_data\env\Scripts\pip.exe" list'
我就不知道为什么一直还会保留原来的环境。我就无奈从回收站把老路径项目恢复,老老实实去执行了一个deactivate,顺利把这个环境给退出。最后突然想起来,虚拟环境是可以叠加启动的。无语三秒。。
怪不得celery安装不上。。。怪不得我感觉是两套celery。。。突然也觉得这个virtualenv也是有bug,把环境路径删除,就没办法退出环境了。仅此记录。。。
----------------------------------------------------------
在启动celery worker时,报了各种各样的错,找不到原因,我怀疑是版本不兼容的问题。redis-py 我换了2.9、2.10、3.4 都不行,但是3.2可以。
-----------------------------------------------------------
如果出现何种valueError:not enough values to unpack (expected 3, got 0),找到的一种解释是: