报错,贴图整理(2)
报错信息如下:
Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment
在pycharm里面把如下参数调整一下即可启动服务。
https://www.jianshu.com/p/1d9c78efa39a
flask蓝图中,没有URL这个文件,我们要功能解耦把URL单独拆分出来,但是flask内置是没有这个URL文件的,我们自己创建的这个URL文件,是无法在flask项目内部加载的,就需要自行在代码级别中加载上,项目的启动文件里面可以把URL注册上,就是把蓝图的在启动文件的注册代码一行拆成两部分。如下所示:
如若蓝图的注册代码不拆分就是这样:
from .views import urls
app.register_blueprint(urls.api, url_prefix='/api/v1)
这里就是拆分后的代码:
# 这里是URL文件代码
from .views import urls root_urls = [ (urls.api, '/api/v1'),
(urls.fore_end, '/fore_end/v1'),
(urls.back_end, '/back_end/v1'),
(urls.buy, '/buy/v1')
]
# 这里是启动文件代码
from .urls import root_urls
for tup in root_urls: blueprint_obj = tup[0] url_prefix_obj = tup[1] app.register_blueprint(blueprint_obj, url_prefix=url_prefix_obj)
django项目内部会自动加载URL文件,但是flask内部没有这些自动加载的功能,就需要我们自己去加载URL文件。这个解决问题的思路很重要。我一开始没有拆分这一行的注册蓝图代码,而是在URL文件中从启动文件引入实例化的app对象,然后在启动文件中引入URL文件的内容,这样启动文件启动就可以把URL文件加载上,但是这里就出现了一个逻辑问题,启动文件和URL文件互相引用,这里就会报错,引入模块失败,这个坑是自己都没有绕过来,请教前辈才明白,于是出现了上面的一行代码拆分成两部分的解决方案。
mac使用crontab报错:
在/etc/目录下创建crontab文件即可,需要使用sudo touch创建。
Mac执行scrapy报错:
command not fount:scrapy
把软链接建立到指定路径即可:
ln -s /Library/Frameworks/Python.framework/Versions/3.6/bin/scrapy /usr/local/scrapy
我这里的scrapy是用python3的pip安装的,所以在python3.6的bin目录下,你要找到你的scrapy都装在哪里了,然后把它链接到后面这个/usr/local下即可。
再提供一个python2.7的路径线索,我自己的是/Users/dream-mac/Library/Python/2.7/bin,scrapy支持python2.7及以上版本的pip安装。