配置github项目——weibo_daily_hotkey

一.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中

这两个问题要同时解决,因为只解决问题一的话,也就是只添加.

.


欢迎在评论区中进行批评指正,转载请注明来源,如涉及侵权,请联系作者删除。

×

喜欢就点赞,疼爱就打赏