Python遇到的问题总结

Python部署时的问题总结

背景

​ 主要用于总结在Centos7中部署Python项目遇到的问题和解决方案(不定期更新),便于后期查找。

  1. 问题描述:项目中使用到了爬虫(scrapy)框架已经任务调度框架,在调度过程中报错信息如下:

    Traceback (most recent call last):
     File "/usr/local/python3/lib/python3.6/site-packages/apscheduler/executors/base.py", line 125, in run_job
       retval = job.func(*job.args, **job.kwargs)
     File "/root/pyproject/douyin/douyin/main.py", line 20, in tick_challenge
       subprocess.Popen("scrapy crawl categoryVideoSpider")
     File "/usr/local/python3/lib/python3.6/subprocess.py", line 707, in __init__
       restore_signals, start_new_session)
     File "/usr/local/python3/lib/python3.6/subprocess.py", line 1326, in _execute_child
       raise child_exception_type(errno_num, err_msg)
    FileNotFoundError: [Errno 2] No such file or directory: 'scrapy crawl categoryVideoSpider'

    原因:虽然通过pip安装了scrapy框架,但是没有建立软链接,导致在执行过程中报错。

    解决方法:建立软链接即可

    ln -s /usr/local/python3/bin/scrapy /usr/bin/scrapy
  2. 问题描述:在执行爬虫过程中出现

    ModuleNotFoundError: No module named '_sqlite3'

    原因:没有安装sqlite3.

    解决方法:安装sqlite3,如下步骤:

    • 下载sqlite3

      wget https://www.sqlite.org/2018/sqlite-autoconf-3230100.tar.gz
    • 解压

      tar zxvf sqlite-autoconf-3230100.tar.gz 
    • 在解压后的sqlite的目录中执行

      ./configure --prefix=/usr/local/sqlite3
    • 执行安装

      make && make install
    • 重新编译python,修改setup.py

      vim /root/Python-3.6.1/setup.py 
    • 找到sqlite_inc_paths添加下面这条语句

      sqlite_inc_paths = [ '/usr/include',
                                '/usr/include/sqlite',
                                '/usr/include/sqlite3',
                                '/usr/local/include',
                                '/usr/local/include/sqlite',
                                '/usr/local/include/sqlite3',
                                '/usr/local/sqlite3/include', # 添加该条信息
                                ]
      
    • 进入到python目录中执行如下操作

      make -j 4
      make install
    • python3测试是否安装成功,不报错说明执行成功

      python3
      >>>import sqlite3
  3. 问题描述:在执行爬虫过程中 scrapy crawl xxxSpider出现了 “Unknown command: crawl“错误

    原因:1.项目中没有”scrapy.cfg“这个文件;2.存在文件但是执行的时候没在这个文件所在目录执行

    解决方案:

    • 针对1的原因只要在项目根目录中新建文件,命名为scrapy.cfg。文件内写入下面的内容即可

      
      # Automatically created by: scrapy startproject
      
      #
      
      # For more information about the [deploy] section see:
      
      
      # https://scrapyd.readthedocs.io/en/latest/deploy.html
      
      
      # xxx为你的项目名
      
      [settings]
      default = xxx.settings
      
      [deploy]
      
      #url = http://localhost:6800/
      
      project = xxx
      
    • 针对2的原因,只要在scrapy.cfg所在目录执行scrapy crawl xxxSpider 即可。但是我们有时候在项目中使用了任务调度,用来执行爬虫的开始,那么就可以在项目中这样写

      app_path = os.path.dirname(os.path.realpath(__file__))
      subprocess.Popen("scrapy crawl xxxSpider", shell=True, cwd=app_path)

      这样就不再局限只能在scrapy.cfg所在目录下执行爬虫了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python项目代码使用过程中,可能会遇到各种各样的问题。为了更好地记录和解决这些问题,我们可以建立一个Python问题汇总索引目录,以便随时查阅和解决。 1. 数据类型问题:比如在处理数据时,遇到了不同数据类型的转换问题,如将字符串转为数字或者将数字转为字符串等。 2. 模块导入问题:在使用第三方模块时,可能会遇到无法导入模块的问题,需要查找原因并解决。 3. 语法错误:在编写代码时,可能会出现各种语法错误,如拼写错误、缩进错误等,需要及时修改以保证代码的正确运行。 4. 性能优化问题:在项目运行过程中,可能会遇到性能瓶颈,需要进行代码优化以提高项目的运行效率。 5. 异常处理问题:在项目运行过程中,可能会遇到各种异常情况,需要进行异常处理以保证程序的稳定性。 6. 接口调用问题:在项目中调用外部接口时,可能会遇到接口参数传递或者返回结果处理的问题,需要及时解决。 7. 单元测试问题:在编写项目代码时,可能会遇到单元测试用例编写或者执行结果验证的问题,需要及时进行检查和修复。 8. 版本兼容性问题:在使用第三方库或者Python版本升级时,可能会出现版本兼容性问题,需要及时调整或者更新相关的代码。 总之,建立Python问题汇总索引目录可以帮助我们更好地管理和解决在项目代码使用过程中遇到的各种问题,提高项目的开发和运行效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值