在 setup.py 中,如何在 python lib 目录中安装依赖项,同时将包本身安装在不同的本地目录中?

问题描述 投票:0回答:1

我创建了一个 Pypi 包并上传了。

pyaml 是这个包所需的依赖项,因此我在 setup.py 中添加了以下几行

 install_requires=[
  "PyYAML >= 6.0",
        ],

现在我需要将软件包安装在 C: ools 中,所以我使用了这个命令

python -m pip install <packagename==packageversion> -t C:\tools

但在这种情况下,pyaml 安装在同一个文件夹中,C: ools,我需要将它安装在 Python\Python311\Lib 中

有没有办法在不使用requirements.pip单独安装pyaml的情况下做到这一点?

python pypi setup.py python-packaging
1个回答
0
投票

此脚本检查模块名称列表,如果模块尚未导入或在规范中找到,则尝试使用 pip 下载并安装每个包。

import subprocess
import importlib.util
import sys

packages = ["package==<version>", "package==<version>"]

for package in packages:
    package_name, package_version = package.split("==")
    
    if package_name in sys.modules:
        print(f"{package_name!r} already in sys.modules")
    elif (spec := importlib.util.find_spec(package_name)) is not None:
        print(f"{package_name!r} found in spec, but not importing")
        try:
            subprocess.run(["python", "-m", "pip", "install", package])
            print(f"Successfully installed {package_name} {package_version}")
        except Exception as e:
            print(f"Failed to install {package_name} {package_version}: {e}")
    else:
        print(f"can't find the {package_name!r} package")
© www.soinside.com 2019 - 2024. All rights reserved.