解决Windows下使用cmd执行Python文件报错 ModuleNotFoundError: No module named ‘XXXX‘

news2024/11/15 5:51:32

一、问题产生

我在IDEA中可以正常执行的Python文件,想把它配置成每天固定时间执行的定时任务。我写了一个脚本在每天9点时执行Python文件,但是我在cmd中测试执行时遇到以下报错:

Traceback (most recent call last):
  File "D:\dev\code\mobileSpider\mobileSpider.py", line 3, in <module>
    from selenium import webdriver
ModuleNotFoundError: No module named 'selenium'

请添加图片描述

二、分析

为什么会出现这个问题?

跟python搜索机制有关,在idea中是以项目为根路径, 所以它的搜索机制是从项目根路径开始向下搜索。而使用命令行执行的时候,是以当前执行的py文件所在目录级别的下一级开始搜索,所以就会出现找不到包的情况。

三、问题解决

A. 有大佬说在我们所需执行的py文件上面添加root路径操作,就可以解决找不到包的问题。

import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

B. 添加以后我却还是报错找不到包,可以将sys.path打印出来看看:

print(sys.path)

我分别在idea中和cmd中打印,发现两者相差了外部包的存放路径:
‘D:\dev\code\wedata-rpa\venv\lib\site-packages’

C. 我们要了解sys.path生成策略

在python脚本执行时sys.path是动态生成,包括以下3个部分:

  1. 脚本执行的位置,即当前路径
  2. 环境变量中的PYTHONPATH, 即.bash_profilec.
  3. python安装的路径

D. 将外部包路径添加至环境变量中
因此需要我将上述这个’D:\dev\code\wedata-rpa\venv\lib\site-packages’路径添加到系统环境变量里去。

新建PYTHONPATH,将外部包路径添加上去。这个的路径会自动加入到sys.path中,永久存在于sys.path中而且可以在不同的python版本中共享,比较方便:
请添加图片描述

然后就可以正常执行了,并且定时任务也可以成功运行。
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD5328手册翻译不完全(仅供参考)

最近要用到DAC生成数据波形&#xff0c;但是都是英文不好阅读&#xff0c;于是花费点时间翻译了大致数据内容并记录 一、特性 AD5308:16导联TSSOP中的8个缓冲8位DAC A版本&#xff1a;1 LSB INL&#xff0c;B版本&#xff1a;0.75 LSB INR AD5318:16导联TSSOP中的8个缓冲10…

互联网时代,VR全景营销的意义是什么?

互联网时代&#xff0c;很多事项我们都可以在手机上解决&#xff0c;随着互联网的不断发展&#xff0c;年轻人每天花在手机上的时间也在日益增加&#xff0c;这就将压力给到了线下实体店铺&#xff0c;年轻人不喜欢逛街&#xff0c;线下店铺的获客成本就会越来越高。同时也是由…

无人机测深三种方法-激光雷达,测深仪和探地雷达

最近搜素了论文和相关网页&#xff0c;博主总结了一下无人机测深总共有三种办法&#xff1a; &#xff08;1&#xff09;激光雷达&#xff1b; &#xff08;2&#xff09;测深仪&#xff1b; &#xff08;3&#xff09;探地雷达&#xff08;GPR&#xff09;。 1、激光雷达 …

如何在匿名上位机中显示自定义数据波形

匿名上位机相信很多人都用过&#xff0c;以前在调飞控的时候使用过&#xff0c;可以很直观的显示数据的波形&#xff0c;比如飞机姿态等。 最近在调试foc。很多数据在调试过程中&#xff0c;仅仅使用串口打印出来显示是很不直观的&#xff0c;比如正弦波&#xff0c;经典的马鞍…

Python冷知识-优雅的文档属性

Python是一门学习成本低但是使用场景广泛的语言&#xff0c;0基础2周左右就可以进行简单的脚本编写&#xff0c;但也正是因为这个原因&#xff0c;导致很多小伙伴的Python代码比较粗糙&#xff0c;那么我们来聊聊使用文档属性让Python代码更加的优雅。 设置文档属性 作为一名…

JUC并发编程学习笔记(二)Lock接口及线程间通信

2 Lock 接口 2.1 Synchronized 2.1.1 Synchronized 关键字回顾 synchronized 是 Java 中的关键字&#xff0c;是一种同步锁。它修饰的对象有以下几种&#xff1a; 修饰一个代码块&#xff0c;被修饰的代码块称为同步语句块&#xff0c;其作用的范围是大括号{}括起来的代码&…

软件测试中白盒测试的优缺点是什么?

白盒测试的优缺点白盒测试在计算机领域行业用以检查程序的状态&#xff0c;确定实际运行状态与预期状态是否一致&#xff0c;来看看白盒测试的优点和缺点是什么吧。 白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符…

Android学习进阶——Dagger 2 使用及原理

概述 Dagger 2 是 Google 开源的一款依赖注入框架&#xff0c;它的前身是 square 的 Dagger 1&#xff0c;Dagger 2 在 Android 中有着较为广泛的应用。 Dagger 2 基于 Java 注解&#xff0c;采用 annotationProcessor&#xff08;注解处理器&#xff09; 在项目编译时动态生…

AS-REPRoasting

讲在前面&#xff1a; 最近笔者发布的几篇文章&#xff0c;大家不难发现&#xff0c;都是和kerberos协议相关的。国内外各类的研究员对于该协议的研究愈发的深入&#xff0c;从该协议产生的漏洞就会越来越多甚至越来越严重。当然这只是笔者的一点拙见。 在介绍了Kerberoastin…

21天Java开发速成篇-Java从入门到大师01快速入门

Java 简介 win10安装 JDK 下载和安装 访问 oracle 官网https://www.oracle.com/ 建议下载解压版,下载完毕后&#xff0c;解压到一个没有中文和空格的目录即可 配置 Path 你可以选择一个喜欢的目录&#xff0c;我的解压目录是 d 盘根目录下&#xff0c;如图所示 其中 b…

创邻Galaxybase入选 2022 爱分析《中国数据智能最佳实践案例》

随着2022年进入收官时间&#xff0c;创邻科技喜报频传。近日&#xff0c;“2022爱分析中国数据智能最佳实践案例”评选结果出炉&#xff0c;经过申报、初评、调研、终评等多轮角逐&#xff0c;创邻科技凭借“中国民生银行万象知识图谱应用平台”成功获评2022中国数据智能最佳实…

FPGA知识汇集-FPGA时序基础理论

对于系统设计工程师来说&#xff0c;时序问题在设计中是至关重要的&#xff0c;尤其是随着时钟频率的提高&#xff0c;留给数据传输的有效读写窗口越来越小&#xff0c;要想在很短的时间限制里&#xff0c;让数据信号从驱动端完整地传送到接收端&#xff0c;就必须进行精确的时…

Kubernetes:minikube操作总结

Kubernetes&#xff1a;minikube操作总结minikube statusminikube nodeminikube status 查询集群状态 $ minikube statusminikube node 新增节点 注意&#xff1a;minikube 仅仅是基于本地 standalone 部署一款简易 k8s 集群&#xff0c;因此添加节点&#xff0c;也仅仅是本…

【多尺度条形池化与通道注意力的图像语义分割】论文精讲

论文&#xff1a;论文链接 出处&#xff1a;中国图象图形学报 目录 1.摘要 2.网络结构 2. 1 改进的条形池化技术 2.2 二阶通道注意力机制 3.结果 1.摘要 目的 针对自然场景下图像语义分割易受物体自身形状多样性、距离和光照等因素影响的问题,本文提出 一种新的基于条形池…

windows搭建gitblit服务器

使用Gitblit搭建属于局域网的Git服务器&#xff0c;方便程序代码的联合开发及程序代码版本管理。 环境&#xff1a;1、Windows 64位操作系统。 2、jdk1.8.0&#xff08;需要java环境&#xff0c;已安装请忽略&#xff09; 3、Git-2.24.1.2-64-bit&#xff08;git工具&#x…

linux系统编程:暂停函数pause

pause函数 该函数功能主要是暂停进程&#xff0c;它的返回值总是-1。 使用方式&#xff1a; &#xff08;1&#xff09;首先使用signal函数提前注册一个中断函数&#xff0c;该函数用于将函数指针和信号做一个绑定; &#xff08;2&#xff09;当程序进行执行pause&#xff0…

【Bp2Lua】深入理解蓝图

【Bp2Lua】深入理解蓝图 做 Bp2Lua 过程中的副产物&#xff0c;蓝图在连连看背后隐含的操作 有几点想说明的 蓝图会隐含一些操作&#xff0c;前端节点图是看不出来的&#xff0c;但是后端字节码会一览无余Bp2Lua 本质是 字节码 ToLua&#xff0c;其实 Bp2Lua 根本不关心也不…

策略模式(strategy pattern)

背景 一、一个具体实现范例的逐步重构 补血道具(药品)&#xff1a;a) 补血丹&#xff1a;补充200点生命值&#xff1b;b) 大还丹&#xff1a;补充300点生命值&#xff1b;c) 守护丹&#xff1a;补充500点生命值将Fighter,F_Warrior,F_Mage 单独写在一个文件中。 Fighter.h …

一步一步学爬虫(4)数据存储之文本存储

一步一步学爬虫&#xff08;4&#xff09;数据存储之文本存储4.1 TXT纯文本文件存储4.1.1 本节目标4.1.2 基本实例4.1.3 打开方式4.1.4 简化写法4.1 TXT纯文本文件存储 将数据保存到 TXT 文本的操作非常简单&#xff0c;而且 TXT 文本几乎兼容任何平台&#xff0c;但是这有个缺…

Spark环境搭建(Hadoop YARN模式)

前言 按照前面环境部署中所学习的&#xff0c;如果我们想要一个稳定的生产Spark环境&#xff0c;那么最优的选择就是构建&#xff1a;HA StandAlone集 群。 不过在企业中&#xff0c; 服务器的资源总是紧张的&#xff0c;许多企业不管做什么业务&#xff0c;都基本上会有Hadoo…