You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django视图调用Python脚本无法检测chromedriver问题求助

我来帮你分析下这个问题——这大概率是工作目录不一致导致的!

你单独运行traffic.py时,脚本的工作目录就是它所在的文件夹,所以能直接找到同目录的chromedriver.exe;但当通过Django视图调用这个脚本时,Django进程的工作目录可能是你的项目根目录(或者其他路径),这时候脚本就找不到同目录的chromedriver了。

给你几个靠谱的解决方案:

1. 在traffic.py里用绝对路径指定chromedriver

这是最稳妥的方式,不管脚本在哪运行都能准确定位到chromedriver。你可以在traffic.py里先获取脚本自身的目录,再拼接chromedriver的路径:

import os
from selenium import webdriver

# 获取当前脚本所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接chromedriver的绝对路径
chromedriver_path = os.path.join(script_dir, 'chromedriver.exe')

# 使用绝对路径初始化浏览器
driver = webdriver.Chrome(executable_path=chromedriver_path)

2. 调用脚本时指定工作目录

在Django视图的run函数里,通过cwd参数指定脚本所在的目录,这样脚本运行时的工作目录就和你单独运行时一致了:

import os
import sys
from subprocess import run

def generate_traffic(request):
    # 其他代码
    script_path = 'C://Users//Maisum Abbas//learning_users//trafficapp//traffic.py'
    # 获取脚本所在目录
    script_dir = os.path.dirname(script_path)
    # 调用脚本时指定工作目录
    out = run(
        [sys.executable, script_path, "--domain", url, "--thread", requests, "--max-clicks", maximum, "--min-clicks", minimum],
        cwd=script_dir
    )

3. 把chromedriver加入系统环境变量(备选)

如果你不想改代码,可以把chromedriver.exe所在的目录添加到系统的PATH环境变量里。这样系统在任何路径下都能找到chromedriver,但这种方式依赖系统配置,换机器的话需要重新设置,不如前两种灵活。

你可以先试试第一种方案,应该能直接解决问题!

内容的提问来源于stack exchange,提问作者Maisum Abbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:07:55