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

Click CLI脚本运行正常,打包后因路径错误失效的问题求助

解决pip安装后CLI无法找到lists目录的问题
  • 修正相对路径的使用逻辑
    本地开发时的../lists/fuzz/path_fuzz相对路径,在pip安装后会失效——因为脚本的执行路径和资源文件的实际安装位置不再是开发环境中的相对关系。改用Python官方推荐的包内资源定位方式:

    • 对于Python 3.9+,用importlib.resources:
      from importlib.resources import files
      
      # 假设lists目录在kitsec包下,路径为kitsec/lists/fuzz/path_fuzz
      fuzz_list_dir = files("kitsec.lists.fuzz.path_fuzz")
      # 若要读取list.txt文件
      list_file = fuzz_list_dir.joinpath("list.txt")
      
    • 兼容旧版本Python可使用pkg_resources:
      import pkg_resources
      
      list_file_path = pkg_resources.resource_filename("kitsec", "lists/fuzz/path_fuzz/list.txt")
      
  • 确保资源文件被打包进安装包
    在项目的打包配置文件中声明需要包含的资源目录,避免安装时遗漏:

    • 用setup.py的话,添加package_data配置:
      from setuptools import setup, find_packages
      
      setup(
          name="kitsec",
          # 其他配置项...
          packages=find_packages(),
          package_data={
              "kitsec": ["lists/**/*"],
          },
          include_package_data=True,
      )
      
    • 用pyproject.toml(推荐)的话,添加:
      [tool.setuptools.package-data]
      "kitsec" = ["lists/**/*"]
      
  • 排查验证
    安装后可以到Python的site-packages/kitsec目录下检查,确认lists文件夹是否存在;也可以在代码中打印资源文件的实际路径,确认定位是否正确:

    print(list_file)  # 或print(list_file_path)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:03:19