Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

环境配置指南 #10

Open
Cb1ock opened this issue Jan 19, 2024 · 1 comment
Open

环境配置指南 #10

Cb1ock opened this issue Jan 19, 2024 · 1 comment
Assignees
Labels
技术相关 除了具体代码以外的

Comments

@Cb1ock
Copy link
Contributor

Cb1ock commented Jan 19, 2024

这里贴出一个个人的python环境配置指南

首先你应该是用conda的

  1. conda* create -n <env-name> python=3.x
  2. conda activate <env-name> or source activate <env-name>
  3. conda install pytorch=2.x torchvision=? torchaudio=? 这一条指令应该参考torch官网

下面就是你的其他相关的包的安装了, 也是比较关键的部分

  1. conda install --yes --file requirements.txt 此时不出问题的话就结束了, 但是一般会出现某些包conda安装不了的情况. 所以你最好写个脚本, 把requirements.txt文件分割成俩个文件 conda_requirements.txtpip_requirements.txt
  2. 然后先用conda conda install --yes --file conda_requirements.txt , 再用pip pip install -r requirements.txt 即可(用pip之前最好先which pip一下, 看一下用的是不是你创建的conda里面的pip

下面贴出这个脚本的具体实现

import subprocess
import re

def split_requirements():
    # 尝试安装 requirements.txt 中的包,并捕获输出
    result = subprocess.run(['conda', 'install', '--yes', '--file', 'requirements.txt'], 
                            capture_output=True, text=True)
    
    # 解析无法安装的包
    missing_packages = []
    for line in result.stderr.split('\n'):
        if 'PackagesNotFoundError' in line:
            # 解析无法安装的包名
            missing_packages = re.findall(r"'([^']*)'", line)
            break

    with open('requirements.txt', 'r') as file:
        lines = file.readlines()

    with open('conda_requirements.txt', 'w') as conda_file, \
         open('pip_requirements.txt', 'w') as pip_file:
        for line in lines:
            package_name = line.split('==')[0]
            if package_name in missing_packages:
                pip_file.write(line)
            else:
                conda_file.write(line)

if __name__ == "__main__":
    split_requirements()
@Cb1ock Cb1ock added documentation Improvements or additions to documentation 技术相关 除了具体代码以外的 and removed documentation Improvements or additions to documentation labels Jan 19, 2024
@Cb1ock
Copy link
Contributor Author

Cb1ock commented Jan 19, 2024

为什么不刚开始就在conda环境里面用pip呢?

可以试一下,踩雷了就知道了

@Cb1ock Cb1ock self-assigned this Jan 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
技术相关 除了具体代码以外的
Projects
None yet
Development

No branches or pull requests

1 participant