質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

290閲覧

YOLOをインポートできない

python01

総合スコア11

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/03/09 18:07

編集2024/03/11 13:59

実現したいこと

下記コードでYOLOをインポートしたいです。

python

1from ultralytics import YOLO

発生している問題・分からないこと

下記エラーコードが発生しており、インポートできません。

error_code

1module 'os' has no attribute 'add_dll_directory'

error_codeの直前のメッセージ

1C:\Users\user\anaconda3\lib\site-packages\numpy\_distributor_init.py:32: UserWarning: loaded more than 1 DLL from .libs: 2C:\Users\user\anaconda3\lib\site-packages\numpy\.libs\libopenblas.FB5AE2TYXYH2IJRDKGDGQ3XBKLKTF43H.gfortran-win_amd64.dll 3C:\Users\user\anaconda3\lib\site-packages\numpy\.libs\libopenblas.XWYDX2IKJW2NMTWSFYNGFUWKQU3LYTCZ.gfortran-win_amd64.dll 4 stacklevel=1) 5--------------------------------------------------------------------------- 6AttributeError Traceback (most recent call last) 7~\AppData\Local\Temp/ipykernel_10124/583945114.py in <module> 8----> 1 from ultralytics import YOLO 9 10~\anaconda3\lib\site-packages\ultralytics\__init__.py in <module> 11 3 __version__ = '8.0.151' 12 4 13----> 5 from ultralytics.hub import start 14 6 from ultralytics.models import RTDETR, SAM, YOLO 15 7 from ultralytics.models.fastsam import FastSAM 16 17~\anaconda3\lib\site-packages\ultralytics\hub\__init__.py in <module> 18 3 import requests 19 4 20----> 5 from ultralytics.data.utils import HUBDatasetStats 21 6 from ultralytics.hub.auth import Auth 22 7 from ultralytics.hub.utils import HUB_API_ROOT, HUB_WEB_ROOT, PREFIX 23 24~\anaconda3\lib\site-packages\ultralytics\data\__init__.py in <module> 25 1 # Ultralytics YOLO 🚀, AGPL-3.0 license 26 2 27----> 3 from .base import BaseDataset 28 4 from .build import build_dataloader, build_yolo_dataset, load_inference_source 29 5 from .dataset import ClassificationDataset, SemanticDataset, YOLODataset 30 31~\anaconda3\lib\site-packages\ultralytics\data\base.py in <module> 32 13 import numpy as np 33 14 import psutil 34---> 15 from torch.utils.data import Dataset 35 16 from tqdm import tqdm 36 17 37 38~\anaconda3\lib\site-packages\torch\__init__.py in <module> 39 106 40 107 for dll_path in dll_paths: 41--> 108 os.add_dll_directory(dll_path) 42 109 43 110 try:

試したこと・調べたこと

  • teratailやGoogle等で検索した
上記の詳細・結果

①pythonのバージョンを変更
3.7→3.11.8→3.8.10
※3.8に切替えています

(base) C:\Users\user>py --list -V:3.11 Python 3.11 (64-bit) -V:3.8 * Python 3.8 (64-bit) -V:ContinuumAnalytics/Anaconda38-64 Anaconda 2020.07

②pipのバージョン変更
22.3.1→24.0

(base) C:\Users\user>pip -V pip 22.3.1 from C:\Users\user\anaconda3\lib\site-packages\pip (python 3.7)
(base) C:\Users\user>pip -V pip 24.0 from C:\Users\user\anaconda3\lib\site-packages\pip (python 3.7)

③パイソンのバージョンを再度確認
py --listでは3.8に*がついていたので、3.8に切り替わっていると
思っていましたが、
python -Vで確認すると、3.7のままでした。

anaconda

1(base) C:\Users\user>python -V 2Python 3.7.7 3 4(base) C:\Users\user>py --list 5 -V:3.11 Python 3.11 (64-bit) 6 -V:3.8 * Python 3.8 (64-bit) 7 -V:ContinuumAnalytics/Anaconda38-64 Anaconda 2020.07

④3.11をアンインストール
3.11はアンインストールできましたが、3.7のままです。
※3.11の環境変数も削除済みです。

(base) C:\Users\user>py --list -V:3.8 * Python 3.8 (64-bit) -V:ContinuumAnalytics/Anaconda38-64 Anaconda 2020.07 (base) C:\Users\user>python -V Python 3.7.7

↓フォルダを確認すると、38のみです。
イメージ説明

⑤仮想環境の確認
env01に3.8がインストールされていました。
仮想環境env01に切替えたら正常に動作すると思いましたが、今までとおなじでした。

anaconda

1(base) C:\Users\user>conda info -e 2# conda environments: 3# 4base * C:\Users\user\anaconda3 5env01 C:\Users\user\anaconda3\envs\env01 6yolo_v3 C:\Users\user\anaconda3\envs\yolo_v3

env01に切替え後

1(env01) C:\Users\user>python -V 2Python 3.8.10

⑥下記を参考にしてjupyter notebookに仮想環境が使用できるよう設定
https://www.salesanalytics.co.jp/datascience/datascience060/
⇒ipython-kernel-install: error: unrecognized arguments: env01が
表示され、設定できない。

anaconda

1(base) C:\Users\user>pip install ipykernel 2WARNING: Ignoring invalid distribution -pencv-python (c:\users\user\anaconda3\lib\site-packages) 3Requirement already satisfied: ipykernel in c:\users\user\anaconda3\lib\site-packages (6.4.1) 4Requirement already satisfied: ipython-genutils in c:\users\user\anaconda3\lib\site-packages ... 5WARNING: Ignoring invalid distribution -pencv-python (c:\users\user\anaconda3\lib\site-packages) 6 7(base) C:\Users\user>ipython kernel install --user --name= env01 8usage: ipython-kernel-install [-h] [--user] [--name NAME] 9 [--display-name DISPLAY_NAME] 10 [--profile PROFILE] [--prefix PREFIX] 11 [--sys-prefix] [--env ENV VALUE] 12ipython-kernel-install: error: unrecognized arguments: env01 13 14(base) C:\Users\user>

⑦コマンドプロンプトで下記コマンドを入力。

anaconda_powershell

1(base) PS C:\Users\user> 2>> import os 3>> os.add_dll_directory('C:/') 4import : 用語 'import' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されま 5せん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してく 6ださい。 7発生場所 行:2 文字:1 8+ import os 9+ ~~~~~~ 10 + CategoryInfo : ObjectNotFound: (import:String) [], CommandNotFoundException 11 + FullyQualifiedErrorId : CommandNotFoundException 12 13os.add_dll_directory : 用語 'os.add_dll_directory' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプロ 14グラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいこと 15を確認してから、再試行してください。 16発生場所 行:3 文字:1 17+ os.add_dll_directory('C:/') 18+ ~~~~~~~~~~~~~~~~~~~~ 19 + CategoryInfo : ObjectNotFound: (os.add_dll_directory:String) [], CommandNotFoundException 20 + FullyQualifiedErrorId : CommandNotFoundException

anaconda_prompt

1(base) C:\Users\user>import os 2'import' は、内部コマンドまたは外部コマンド、 3操作可能なプログラムまたはバッチ ファイルとして認識されていません。 4 5(base) C:\Users\user>import os 6'import' は、内部コマンドまたは外部コマンド、 7操作可能なプログラムまたはバッチ ファイルとして認識されていません。

⑧コマンドプロンプトで確認
「⑦」のコマンドを入力すると、
Added...(C:/)
のコードが出力された。

※直前に下記環境変数を削除。

イメージ説明

また、ここでpy -3.7を入力すると、ファイルがない。と返ってくる。
⇒anaconda promptでは(base)のままでpython -Vと入力すると、
3.7.7と返ってくるので、矛盾している。

イメージ説明

⑨Pythonを再度インストール

下記のWindows 64-bitをインストール。Jupyterにて仮想環境で実行。

イメージ説明

↓仮想環境env01にPython3.11がインストールされた。

anaconda_prompt

1(base) C:\Users\user>python -V 2Python 3.7.7 3 4(base) C:\Users\user>conda activate env01 5 6(env01) C:\Users\user>python -V 7Python 3.11.8 8 9(env01) C:\Users\user>py --list 10 -V:3.11 * Python 3.11 (64-bit) 11 -V:ContinuumAnalytics/Anaconda38-64 Anaconda 2020.07

↓Jupyterのchenge kernelで仮想環境env01に切り替えた後、下記を実行。

Jupyter_note(env01)

1from ultralytics import YOLO

error_code

1module 'os' has no attribute 'add_dll_directory'

補足

python:3.7→現在は3.8.10→3.11.8
pip:22.3.1→現在は24.0
ultralytics:8.0.151

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2024/03/09 18:14

> ①pythonのバージョンを変更 > 3.7→3.11.8→3.8.10 上記全てのPythonで全く同じエラーなのでしょうか?
python01

2024/03/09 18:15

どのバージョンで行っても module 'os' has no attribute 'add_dll_directory' と表示されます。
meg_

2024/03/09 18:23 編集

import os os.add_dll_directory('C:/') 上記コードはエラーなく実行できますか? ※ 手元のPython 3.8.18ではエラーは出ませんでした。
python01

2024/03/09 18:24

エラーが出ました --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_13900/2914635383.py in <module> 1 import os ----> 2 os.add_dll_directory('C:/') AttributeError: module 'os' has no attribute 'add_dll_directory'
python01

2024/03/09 18:34

因みにanaconda promptでコードを打ち込むと、 よく下記コードがでますが、これは関係ありますか? WARNING: Ignoring invalid distribution -pencv-python (c:\users\user\anaconda3\lib\site-packages) opencvを最新バージョンにしても発生します。 opencv-python:4.9.0.80
Eggpan

2024/03/09 23:42

どのようにしてプログラムを実行したのかを追記いただいた方が良いと思います。 pip 24.0 from C:\Users\user\anaconda3\lib\site-packages\pip (python 3.7) と出ていますので、実行方法を誤っていてpython3.7で動かしている可能性が高いです
meg_

2024/03/10 01:20

> エラーが出ました "python:3.8.10"でエラーが発生したということで間違いないでしょうか? そうであれば画面コピーを質問に追記いただけますでしょうか?
python01

2024/03/10 12:25

試したこと③パイソンのバージョンを再度確認。を追加しました。 py --listで3.8となっていたので、切り替わっていたと思っていましたが、 python -Vでは3.7のままでした。
meg_

2024/03/10 15:53

> 下記を参考にしてjupyter notebookに仮想環境が使用できるよう設定 > 表示され、設定できない。 ひとまずjupyter notebookではなくコマンドプロンプト(パワーシェル)で下記コードを打ってエラーが出ないことを確認してみてください。 import os os.add_dll_directory('C:/')
python01

2024/03/10 21:47

コメントありがとうございます。 試した事⑦ import osの結果を記載しました。 正しく認識できていないようです。
meg_

2024/03/11 12:42 編集

(base) PS C:\Users\user> >> import os コマンドプロンプトの使い方が間違っているようです。 1.まずPython3.8の環境に切り替えてください。(env01が3.8のはずですよね?)上記はbaseのままのようです。 2.python と入力してPython環境に入ってください。それからコードを入力してください。 (参考) 1について:https://nw.tsuda.ac.jp/lec/python/anaconda/conda/ 2について:https://www.python.jp/install/windows/py_launcher.html
python01

2024/03/11 13:02

ご教示頂いたコードで、add all directory(C:)と出力されました。 また、環境変数のPython37を削除した為か、 コマンドプロンプトから実行すると、3.7は実行できなくなっていました。 しかし、anacondaでPython -Vを実行すると、baseは3.7.7となります。
meg_

2024/03/11 13:15 編集

⑧の画像を見るとAnacondaではないPython3.8がPCにインストールされているようですね。どうやら様々なPython環境が混在しているようです。 > 下記コードでYOLOをインポートしたいです。 上記についてはPython3.8以上で実行すれば良いかと思います。 > また、環境変数のPython37を削除した為か、 いつ設定してどのタイミングで削除したんでしょうか?(質問に)書かれていないことは分かりませんので何がどうなったのかは分かりません。
python01

2024/03/11 13:22

>上記についてはPython3.8以上で実行すれば良いかと思います。  再度適切なPythonをインストールして実行してみます。   >いつ設定してどのタイミングで削除したんでしょうか?  環境変数は⑧を実行する前に削除しました。すみません。⑧にも追記しておきます。
python01

2024/03/11 15:38

meg_様 何度もお力添え頂き、ありがとうございます。 コマンドプロンプトでYOLOをインポートできました。 また、画像を予測させたら、正しく認識できていました。
guest

回答1

0

ベストアンサー

anacondaのライブラリを必要としないのであれば、通常のコマンドプロンプトで下記を実行すれば良いと思います。

py -3.8 -m pip install ultralytics

Anacondaでしか使えないライブラリが不要なのであれば、Anacondaを使う必要はありません。
通常のコマンドプロンプトでpyコマンドを使うか、Anaconda Promptでpythonコマンドを使うかどちらかにしましょう

色々なpythonをインストールしすぎて整理出来ていないようなので、まずそれぞれのコマンドがどのpythonを利用しているのか把握しましょう。

pyコマンド

これは py --list-paths* がついているpythonを実行します。通常インストールされたpythonの中で最新版を実行します。 環境変数 PY_PYTHON で変更できます。
https://docs.python.org/ja/3/using/windows.html#customizing-default-python-versions

pythonコマンド、pipコマンド

これはパスが通っているコマンドを実行します。パスが未設定であれば実行出来ません。
where pythonwhere pip といったコマンドでパスが通っているコマンドが表示されます。この中で一番上のものが実行されます。
Anaconda Promptは起動時にパスを追加することで、anaconda内のpythonを優先させるようになっているようです。


python公式からインストールするものは
C:\Users\Username\AppData\Local\Programs\Python といったパスにインストールされます。
Anacondaのインストール時に入るpythonは
C:\Users\Username\anaconda3\python.exe といったパスにインストールされます。共存できはしますが全くの別物です。

投稿2024/03/11 14:02

Eggpan

総合スコア2729

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

python01

2024/03/11 14:45

回答ありがとうございます。 大分頭が整理できてきたようです。 また、まだ画像で予測するところに到達できていませんが、 コマンドプロンプトでインポートはできているようです。 Jupyter noteではインポートできなかったので、 Jupyterで設定した仮想環境を調べると、3.7のままになっていました。 大分理解できてきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問