报错,贴图整理(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安装。

 

posted @ 2019-04-09 10:27  dream-子皿  阅读(229)  评论(0编辑  收藏  举报