解决window移植到linux shell执行Python脚本提示找不到模块问题:

简介: 调试python工程时代码正常执行,但远程执行时,导入模块时提示找不到模块,即使模块就在当前工程目录下也不行

问题描述:


       调试python工程时代码正常执行,但远程执行时,导入模块时提示找不到模块,即使模块就在当前工程目录下也不行


解决方案:


1、将工程目录添加到sys.path中 (测试有效)


import sys
cpath = 'project_path' # 写成项目的地址 最好是绝对地址 因为有的地方确实会报错 不清楚原因
sys.path.append(cpath)


2、直接修改系统的环境变量


# 添加或者创建PYTHONPATH这个变量
export PYTHONPATH="project_path"


sys.append()详细说明:


当我们导入一个模块时:import XXX,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块,如果都搜索不到,则会报错。我们的搜索路径存放在sys模块中的path中,sys.path是当前路径的一个列表。[即默认路径可以通过sys.path来打印查看]


4.1 sys.append()


sys.path是一个列表list,它里面包含了已经添加到系统的环境变量路径


当我们要添加自己的引用模块搜索目录时,可以通过list的append方法:


sys.append()


对于需要引用的模块和需要执行的脚本文件不在同一个目录时,可以按照如下形式来添加路径:


【例如】


①导入的XX包在另一个项目文件中,在自己写的程序中需要用到XX包


②所以我们在运行自己的程序时,首先加载导入的XX包,加载的时候python解释器会去解释sys.path默认搜索路径去搜索。


③如果通过sys.path中的路径可以搜索到XX包,然后加载。


④如果无法通过sys.path中的路径搜索到XX包,即说明自己的程序中引用的XX包,与自己的程序脚本所在目录不在同一个路径。(无法在自己的程序脚本中根据默认搜索路径查到XX包)


⑤然后我们就需要将XX包的搜索路径添加到自己的程序脚本的默认搜索路径中,重新运行自己的程序脚本,先搜索XX包再加载XX包。


import sys  
sys.path.append(’需要引用模块的地址')
# sys.path.append("..")   # 这代表添加当前路径的上一级目录


注:这种方式是运行时修改,脚本运行后就会失效。

目录
相关文章
|
2月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
348 9
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
218 0
Linux系统初始化脚本
|
2月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
215 2
|
3月前
|
JSON API 开发者
深度分析阿里妈妈API接口,用Python脚本实现
阿里妈妈是阿里巴巴旗下营销平台,提供淘宝联盟、直通车等服务,支持推广位管理、商品查询等API功能。本文详解其API调用方法,重点实现商品推广信息(佣金、优惠券)获取,并提供Python实现方案。
|
3月前
|
JSON API 数据安全/隐私保护
深度分析虾皮城API接口,用Python脚本实现
虾皮开放平台提供丰富的API接口,支持商品管理、订单处理及促销信息查询等功能。本文详解API认证机制与调用方法,基于Python实现商品价格及到手价获取方案,适用于电商数据分析与运营。
|
2月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
3月前
|
API 数据安全/隐私保护 开发者
深度分析苏宁API接口,用Python脚本实现
深度分析苏宁API接口,用Python脚本实现
|
监控 Linux
linux服务器显卡监控脚本
linux服务器显卡监控脚本
254 0
|
监控 Shell Linux
Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1
363 0