python3 import execjs ModuleNotFoundError: No module named ‘execjs‘

本文详细介绍了在遇到Python中'execjs'模块缺失错误时的解决方案,通过使用pip安装PyExecJS来修复该问题,并附带了完整的安装过程记录。

  import execjs
ModuleNotFoundError: No module named 'execjs'

 

解决办法

>pip install PyExecJS
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting PyExecJS
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ba/8e/aedef81641c8dca6f
d0fb7294de5bed9c45f3397d67fddf755c1042c2642/PyExecJS-1.5.1.tar.gz
Requirement already satisfied: six>=1.10.0 in c:\programdata\anaconda3\lib\site-
packages (from PyExecJS) (1.13.0)
Building wheels for collected packages: PyExecJS
  Building wheel for PyExecJS (setup.py) ... done
  Created wheel for PyExecJS: filename=PyExecJS-1.5.1-cp37-none-any.whl size=145
95 sha256=e498f459760a5b53f8586738e375cb62e43722ae65bc9184e5e9b9c14a1f7b95
  Stored in directory: C:\Users\pc\AppData\Local\pip\Cache\wheels\be\db\78\797b5
4c35b3c1d2e5c951d4cc63088d49df26a2e5c14cba575
Successfully built PyExecJS
Installing collected packages: PyExecJS
Successfully installed PyExecJS-1.5.1

参考https://blog.youkuaiyun.com/lanluyug/article/details/84031474

 

 

### 解决 Python 中 `ModuleNotFoundError` 错误 当尝试导入 `execjs` 模块时遇到 `ModuleNotFoundError: No module named 'execjs'` 的错误,通常是因为该模块未正确安装或环境配置不当。以下是详细的解决方案: #### 1. 安装缺失的模块 确保已经安装了所需的库。对于 `execjs` 模块来说,可以通过 pip 来完成安装。 ```bash pip install PyExecJS ``` 需要注意的是,在某些情况下,实际使用的名称可能与预期不同。例如,虽然代码中使用的是 `import execjs`,但实际上应该安装名为 `PyExecJS` 的包[^2]。 #### 2. 验证虚拟环境 如果正在使用虚拟环境,则需激活对应的 virtualenv 并在此环境中执行上述命令来安装必要的依赖项。这有助于隔离各个项目的依赖关系并减少冲突的可能性。 ```bash source venv/bin/activate # Linux/MacOS .\venv\Scripts\activate # Windows PowerShell ``` 之后再试一次程序运行情况看是否解决了问题[^5]。 #### 3. 设置 PYTHONPATH 或调整 sys.path 有时即使安装好了相应的库仍然无法正常工作,可能是由于当前的工作目录不在 Python 查找路径内造成的。此时可通过设置环境变量 `PYTHONPATH` 将目标文件夹加入到搜索范围之内;或者直接在脚本开头动态修改 `sys.path` 列表以包含额外的位置。 ```python import os, sys module_path = "/path/to/modules" if module_path not in sys.path: sys.path.append(module_path) ``` 不过这种方法仅适用于临时解决问题,并不是长久之计。建议从根本上理清项目结构和依赖管理机制[^4]。 #### 4. 使用绝对导入代替相对导入 为了避免因路径变化而导致找不到特定命名空间下的子模块的情况发生,推荐采用全限定名的方式来进行跨文件间的引用操作。比如从顶层包开始逐级指定直到具体的目标对象为止。 ```python from mypackage.subpackage import MyClass ``` 这样做不仅提高了代码可读性和维护性,同时也减少了潜在的风险因素[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值