一、python环境搭建
项目用的是python3,我这边用的是anaconda来管理python环境。
1、介绍Anaconda
Anaconda在英文中是“蟒蛇”,麻辣鸡(Nicki Minaj妮琪·米娜)有首歌就叫《Anaconda》,表示像蟒蛇一样性感妖娆的身体。
你可能已经安装了 Python,那么为什么还需要 Anaconda?有以下3个原因:
1)Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。
2)管理包
Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。
在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。
3)管理环境
为什么需要管理环境呢?
比如你在A项目中用了 Python 2,而新的项目B老大要求使用Python 3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候 conda就可以帮助你为不同的项目建立不同的运行环境。
还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个 Numpy 版本,你要做的应该是,为每个 Numpy 版本创建一个环境,然后项目的对应环境中工作。这时候conda就可以帮你做到。
2、安装Anaconda
1、anaconda下载与安装:分有界面和无界面。具体可以百度。我这边为了简单直观,安装的就是有界面的。
下载地址:https://www.anaconda.com/products/individual#macos
mac中安装就不介绍了。
安装好后:可以点击左下角的“create”创建新的python环境。
3、使用Anaconda ,查询和切换环境
二、引入项目
用git下载项目,并用pyCharm打开,这点就不介绍了。
1、设置pyCharm中用哪个python环境
打开设置
image如果inerpreter中没有,可以点开新建或者选择某个Anaconda环境。如上图。如果没有你需要的,可以点击“show All”新建或者引入一个环境。
选择好环境之后,pyCharm右下角就会显示当前的python环境
然后运行环境,系统如果报确实某个moudle,可以在命令行界面输入“pip install xxxx”来安装
注意:安装的环境要跟pyCharm上一步选择的环境一致,不然安装的包就不会在当前环境中,pyCharm还是找不到相关包。
另外,一般的python项目,会有文档说明当前项目需要的包和版本。可以直接安装对应版本,如“ pip install gevent==1.3.7 ”
最后,因为我的项目是一个爬虫项目,用到了monkey
import gevent.monkey
gevent.monkey.patch_all()
image.gif
代码报错如下:
python中运行monkey.patch_all()报错
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/zhangyushui/IdeaProjects/nezha-query/src/query_controller.py", line 3, in <module>
from query_service import get_query_handler_names, get_client_next_query, report_client_query_result, check_brand_api, \
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 152, in __exit__
File "<frozen importlib._bootstrap>", line 107, in release
RuntimeError: cannot release un-acquired lock
monkey.patch_all()的时候报错gevent.exceptions.LoopExit: This operation would block forever
查找了所有相关的包和版本,都没发现问题,最后是改变了一些启动配置,就成功启动了,神奇!!!
项目用的是waitress+Flask做的服务器框架,成功启动!
网友评论