pycharm执行python程序报错ImportError: DLL load failed: torchvision找不到指定的程序

这篇博客记录了在Python环境中遇到ImportError: DLL load failed的问题,通过卸载并重新安装torchvision为0.7.0版本解决了问题。详细步骤包括:使用pip卸载旧版本torchvision,从特定网址下载适用于Windows和CPU的torchvision whl文件,然后使用pip安装。验证安装成功后,展示了能正常运行的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ImportError: DLL load failed: 找不到指定的程序

参考

https://blog.youkuaiyun.com/shuiyixin/article/details/90370588

 

 

C:\ProgramData\Anaconda3\python.exe "C:\Program Files\JetBrains\PyCharm 2019.3.1\plugins\python\helpers\pydev\pydevconsole.py" --mode=client --port=61583
import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend(['C:\\Users\\pc\\PycharmProjects\\seq2seq', 'C:/Users/pc/PycharmProjects/seq2seq'])
Python 3.7.5 (default, Oct 31 2019, 15:18:51) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.
PyDev console: using IPython 7.9.0
Python 3.7.5 (default, Oct 31 2019, 15:18:51) [MSC v.1916 64 bit (AMD64)] on win32
runfile('C:/Users/pc/PycharmProjects/seq2seq/RnnSeqLenAndBatchSize.py', wdir='C:/Users/pc/PycharmProjects/seq2seq')
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-e3646211eb52>", line 1, in <module>
    runfile('C:/Users/pc/PycharmProjects/seq2seq/RnnSeqLenAndBatchSize.py', wdir='C:/Users/pc/PycharmProjects/seq2seq')
  File "C:\Program Files\JetBrains\PyCharm 2019.3.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm 2019.3.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/pc/PycharmProjects/seq2seq/RnnSeqLenAndBatchSize.py", line 6, in <module>
    import torchvision.transforms as transforms
  File "C:\Program Files\JetBrains\PyCharm 2019.3.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torchvision\__init__.py", line 1, in <module>
    from torchvision import models
  File "C:\Program Files\JetBrains\PyCharm 2019.3.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\torchvision\models\__init__.py", line 11, in <module>

 

解决办法重装 torchvision

1 卸载

C:\Users\pc>pip uninstall torchvision
Found existing installation: torchvision 0.3.0
Uninstalling torchvision-0.3.0:
  Would remove:
    c:\programdata\anaconda3\lib\site-packages\torchvision
    c:\programdata\anaconda3\lib\site-packages\torchvision-0.3.0-py3.7.egg-info
Proceed (y/n)? y
  Successfully uninstalled torchvision-0.3.0

2 安装torchvision0.7.0   查看torch用的是1.6.0版本,而对应得torchvision==0.7.0

直接用pip install torchvision==0.7.0 用的是清华的镜像,报告找不到对应包,可能是清华镜像地址比较老原因

直接下载轮子安装

轮子地址

https://download.pytorch.org/whl/torch_stable.html

安装命令(切到whl的下载目录中执行)

pip install "torchvision-0.7.0+cpu-cp37-cp37m-win_amd64.whl"


Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Processing c:\users\pc\downloads\torchvision-0.7.0+cpu-cp37-cp37m-win_amd64.whl
Requirement already satisfied: pillow>=4.1.1 in c:\programdata\anaconda3\lib\sit
e-packages (from torchvision==0.7.0+cpu) (6.2.1)
Requirement already satisfied: numpy in c:\programdata\anaconda3\lib\site-packag
es (from torchvision==0.7.0+cpu) (1.17.4)
Requirement already satisfied: torch==1.6.0 in c:\programdata\anaconda3\lib\site
-packages (from torchvision==0.7.0+cpu) (1.6.0)
Requirement already satisfied: future in c:\programdata\anaconda3\lib\site-packa
ges (from torch==1.6.0->torchvision==0.7.0+cpu) (0.18.2)
Installing collected packages: torchvision
Successfully installed torchvision-0.7.0+cpu

验证

import torchvision as tv
print(tv.__version__)

0.7.0+cpu

 

#然后执行py代码并附结果如下,表明安装的该包可以正常运行

# -*- coding: utf-8 -*-

import torch
import torch.utils.data as Data
import torch.nn as nn
import torchvision.transforms as transforms
import numpy as np
###   Demo dataset

data_ = [[1, 10, 11, 15, 9, 100],
         [2, 11, 12, 16, 9, 100],
         [3, 12, 13, 17, 9, 100],
         [4, 13, 14, 18, 9, 100],
         [5, 14, 15, 19, 9, 100],
         [6, 15, 16, 10, 9, 100],
         [7, 15, 16, 10, 9, 100],
         [8, 15, 16, 10, 9, 100],
         [9, 15, 16, 10, 9, 100],
         [10, 15, 16, 10, 9, 100]]


###   Demo Dataset class

class DemoDatasetLSTM(Data.Dataset):

    """
        Support class for the loading and batching of sequences of samples

        Args:
            dataset (Tensor): Tensor containing all the samples
            sequence_length (int): length of the analyzed sequence by the LSTM
            transforms (object torchvision.transform): Pytorch's transforms used to process the data
    """

    ##  Constructor
    def __init__(self, dataset, sequence_length=1, transforms=None):
        self.dataset = dataset
        self.seq_len = sequence_length
        self.transforms = transforms

    ##  Override total dataset's length getter
    def __len__(self):
        return self.dataset.__len__()

    ##  Override single items' getter
    def __getitem__(self, idx):
        if idx + self.seq_len > self.__len__():
            if self.transforms is not None:
                item = torch.zeros(self.seq_len, self.dataset[0].__len__())
                item[:self.__len__()-idx] = self.transforms(self.dataset[idx:])
                return item, item
            else:
                item = []
                item[:self.__len__()-idx] = self.dataset[idx:]
                return item, item
        else:
            if self.transforms is not None:
                return self.transforms(self.dataset[idx:idx+self.seq_len]), self.transforms(self.dataset[idx:idx+self.seq_len])
            else:
                return self.dataset[idx:idx+self.seq_len], self.dataset[idx:idx+self.seq_len]


###   Helper for transforming the data from a list to Tensor

def listToTensor(list):
    tensor = torch.empty(list.__len__(), list[0].__len__())
    for i in range(list.__len__()):
        tensor[i, :] = torch.FloatTensor(list[i])
    return tensor

###   Dataloader instantiation

# Parameters
seq_len = 3
batch_size = 2
data_transform = transforms.Lambda(lambda x: listToTensor(x))

dataset = DemoDatasetLSTM(data_, seq_len, transforms=data_transform)
data_loader = Data.DataLoader(dataset, batch_size, shuffle=False)

for data in data_loader:
    x, _ = data
    print(x)
    print('\n')

#结果如下


tensor([[[  1.,  10.,  11.,  15.,   9., 100.],
         [  2.,  11.,  12.,  16.,   9., 100.],
         [  3.,  12.,  13.,  17.,   9., 100.]],
        [[  2.,  11.,  12.,  16.,   9., 100.],
         [  3.,  12.,  13.,  17.,   9., 100.],
         [  4.,  13.,  14.,  18.,   9., 100.]]])
tensor([[[  3.,  12.,  13.,  17.,   9., 100.],
         [  4.,  13.,  14.,  18.,   9., 100.],
         [  5.,  14.,  15.,  19.,   9., 100.]],
        [[  4.,  13.,  14.,  18.,   9., 100.],
         [  5.,  14.,  15.,  19.,   9., 100.],
         [  6.,  15.,  16.,  10.,   9., 100.]]])
tensor([[[  5.,  14.,  15.,  19.,   9., 100.],
         [  6.,  15.,  16.,  10.,   9., 100.],
         [  7.,  15.,  16.,  10.,   9., 100.]],
        [[  6.,  15.,  16.,  10.,   9., 100.],
         [  7.,  15.,  16.,  10.,   9., 100.],
         [  8.,  15.,  16.,  10.,   9., 100.]]])

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值