一.git命令
git init
git remote add origin git@pengber:pengber/weibo_daily_hotkey #关联远程仓库
git pull origin master #拉取
二.python包配置
命令行:
conda create -n weibo_python python=3.6 #创建环境
activate weibo_python #激活环境
pip install requests --default-timeout=1000
pip install lxml --default-timeout=1000
三.试运行
找了util/cronjob.py试运行(代码简单,并且可以打印数据)
# -*- coding: utf-8 -*-
# Cronjob for Weibo's hotkey upload system.
from cronjob.crawler.hotkey_fetcher import HotkeyFetcher
from util.constant.enum import *
if __name__ == "__main__":
fetcher = HotkeyFetcher()
data = fetcher.get_data(ENUM_DATATYPE_JSON, limit=10)
print(data)
报错:ModuleNotFoundError: No module named 'cronjob.crawler'; 'cronjob' is not a package
。
文件目录如下:
|/conf 配置文件
|/data 爬取数据
|/util 工具函数
|---->|/base 基础库
|---->|/configcenter 配置中心
|---->|/constant 常量
|/cronjob 定时任务
|---->|/datacenter 数据中心
|-------->|/database 数据库数据
|-------->|/cache 缓存数据
|---->|/crawler 爬虫中心
|---->|/tool 定时工具
|/service //TODO 服务中心
|cronjob.py 定时抓取、数据比对脚本
|update.py 定时更新 repo 脚本
|update_code.py 手动更新 github 代码脚本 //FIXME (git add . 的实现有 bug)
虽然cronjob/目录下有__init__.py(将本地文件当作包可以导入),但是没有起到作用,最后解决办法如下:
原因一:util/cronjob.py运行文件和cronjob包名称相同。
解决办法:修改cronjob.py文件名
原因二:包路径没有添加到包搜索路径。
解决办法:添加如下代码,且必须添加到引入自定义包的代码之前
import sys,os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # __file__获取执行文件相对路径,整行为取上一级的上一级目录
sys.path.append(BASE_DIR)
其中
__file__ #获取当前执行文件路径
os.path.abspath(__file__) #获取当前执行文件的绝对路径
os.path.dirname(os.path.abspath(__file__)) #获取当前执行文件的上一层目录
os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #获取当前执行文件的上一层目录的上一层目录
sys.path.append(BASE_DIR) #将BASE_DIR添加到sys.path中
这两个问题要同时解决,因为只解决问题一的话,也就是只添加.
.
欢迎在评论区中进行批评指正,转载请注明来源,如涉及侵权,请联系作者删除。