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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

0回答

713閲覧

python pipやsys.path.appendしているのにimportができない

batafulai

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2022/05/20 06:21

編集2022/05/21 01:22

VScodeを使用しているpython初心者です。pywinautoをインポートするためにpipを使ってインストールしたのですが、インポートが出来ず。pip listやpip showで確認してみると、一応ダウンロードはできているはずなのにインポートが出来ません。そこで、sys.pathで確認するとモジュールのパスが通っていないことが分かったので、pip showのlocationにあるパスを使い、sys.path.appendを使っても一向に改善されずインポートが出来ませんでした。インポートができるようにするにはどうしたらよいのでしょうか?

pythonのバージョン 3.9.0

sys.pathの結果
['', 'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\python39.zip',
'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\DLLs', 'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib', 'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39', 'C:\Users\〇〇〇\AppData\Roaming\Python\Python39\site-packages', 'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib\site-packages',
'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib\site-packages\win32',
'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib\site-packages\win32\lib',
'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib\site-packages\Pythonwin']

pip show pywinauto の結果のLocation欄
Location: c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-package

sys.path.appendで無理やり追加したパス
('c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages')

python -Vの結果 
C:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages\pip

import site; print(site.getsitepackages()) の結果
['C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39', 'C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib\site-packages']

import sys; print(sys.executable) の結果
C:\users\〇〇〇\appdata\local\programs\python\python39\python.exe

pip -Vの結果
pip 22.1 from C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib\site-packages\pip (python 3.9)

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

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

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

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

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

jbpb0

2022/05/20 07:13

> pip showのlocationにあるパスを使い、sys.path.appendを使って 追加したパスを教えてください (ユーザー名等の個人情報は伏せ字にして)
batafulai

2022/05/20 07:57 編集

Location: c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages import sys: sys.path.append('/users/〇〇〇/appdata/local/programs/python/python39/lib/site-packages') locationの\を使うとunicode errorが出るので、/で代用しました
jbpb0

2022/05/20 08:41 編集

> Location: c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages の「\」を全部「\\」に変えて、 sys.path.append('c:\\users\\〇〇〇\\appdata\\local\\programs\\python\\python39\\lib\\site-packages') ではどうでしょうか? (先頭の「c:」も忘れずに)
batafulai

2022/05/20 09:44

Traceback (most recent call last): File "c:\〇〇〇\〇〇〇\〇〇〇\〇〇〇.py", line 6, in <module> from pywinauto import Desktop, Application File "c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages\pywinauto\__init__.py", line 59, in <module> import win32api # noqa: E402 ModuleNotFoundError: No module named 'win32api' コメントに書かれたとおりにやると、上のようなエラーになりました。\user\~\pywinauto\__init__.py"のファイルを開くと、win32apiとpythoncomがインポートできていないことが分かりました。 if sys.platform == 'win32': # Importing only pythoncom can fail with the errors like: # ImportError: No system module 'pywintypes' (pywintypes27.dll) # So try to facilitate pywintypes*.dll loading with implicit import of win32api import win32api # noqa: E402 import pythoncom # noqa: E402 なのでpipを使ってpywin32をインストールして、pywin32のパスを利用して同様にsys.path.appendを使ったのですが、変わらないエラーが出ました。
quickquip

2022/05/20 09:53

pip showのlocationにあるパスがsys.pathにないのはなぜなのですか。 コマンド pip -V の結果と Pythonコード import site; print(site.getsitepackages()) の実行結果はどうなっているか 質問に追記するとよいと思います。
jbpb0

2022/05/20 09:57

import win32api を実行したら、どんなエラーが出ますか?
jbpb0

2022/05/20 10:00

それと、appendで追加したのではない、もともとsys.pathに含まれてる、最後が「site-packages」で終わるパスを教えてください
batafulai

2022/05/20 13:09 編集

Traceback (most recent call last): File "c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages\pywinauto\__init__.py", line 59, in <module> import win32api # noqa: E402 ModuleNotFoundError: No module named 'win32api' 上がimport win32apiのエラーです。 'C:\\users\\〇〇〇\\appdata\\roaming\\python\\python39\\site-packages', 上がもともとのパスです。
jbpb0

2022/05/20 15:08

pythonで下記を実行したら、何て表示されますでしょうか? import sys print(sys.executable) あと、「pip install...」とかをやってる状態で、下記を実行した結果を教えてください where pip
batafulai

2022/05/21 00:31

C:\users\〇〇〇\appdata\local\programs\python\python39\python.exe 上がprint(sys.executable)の結果です。 Collecting where Downloading where-1.0.2-py2.py3-none-any.whl (3.3 kB) Requirement already satisfied: pip in c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages (22.1) Collecting itermate==1.0.2 Downloading itermate-1.0.2.zip (3.5 kB) Preparing metadata (setup.py) ... done Using legacy 'setup.py install' for itermate, since package 'wheel' is not installed. Installing collected packages: itermate, where Running setup.py install for itermate ... done Successfully installed itermate-1.0.2 where-1.0.2 where pipの結果はこれだと思われます。
jbpb0

2022/05/21 00:47 編集

> Successfully installed itermate-1.0.2 where-1.0.2 where pipの結果はこれだと思われます。 pip install where pip じゃないですよ where pip だけ実行してください
batafulai

2022/05/21 00:53 編集

where pipだけの場合だと何故か何の結果も起きません
quickquip

2022/05/21 00:56 編集

整理すると 1. 元々のsys.pathには 'C:\\users\\〇〇〇\\appdata\\roaming\\python\\python39\\site-packages', があって、'C:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages' がなかった。(とは明には書かれていないので、これは確認です。本当ですか? sys.pathもちゃんと全部載せた方がいいように思います) 2. pip show pywinauto の結果のLocation欄は c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages だった 3. sys.path.append('c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages') と無理矢理追加した 4. import site; print(site.getsitepackages()) の結果は ['C:\users\〇〇〇\appdata\local\programs\python\python39', 'C:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages'] (勝手に [] を省略していませんか? 編集はしないで正確に引用してください) 5. import sys; print(sys.executable) の結果は C:\users\〇〇〇\appdata\local\programs\python\python39\python.exe 6. pip -V の結果は pip 2x.x.x from C:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages\pip (python 3.9) (これは想像です。質問文に引用する時に勝手に削っていますね。編集はしないで正確に引用してください) ここは「質問への追記・修正の依頼」欄です。このあたりこの欄にむやみに書かずに、質問を編集して書いてください。 もう一度、 where pip where python というコマンドを実行した結果を載せてください。 (一番不思議な点は1.にありますね……)
jbpb0

2022/05/21 01:06

> No module named 'win32api' > pipを使ってpywin32をインストールして、pywin32のパスを利用して同様にsys.path.appendを使ったのですが、変わらないエラーが出ました。 は、これかも https://teratail.com/questions/334307
quickquip

2022/05/21 01:43 編集

なんか where python where pip python -VV pip -V python -c "import sys; print(sys.path); print(sys.executable)" python -c "import site; print(site.getsitepackages())" pip show pywinauto と実行してもらって、プロンプトと実行コマンドを含めて全部コピーして、ユーザ名だけ置換して他は一切編集せずに質問に貼ってもらった方がいい気もしました。 誤字ってたので直しました。。。
jbpb0

2022/05/21 01:19 編集

> (一番不思議な点は1.にありますね……) そうですね 5.の結果から、appendしなくてもいい場所のはずなのですが ただし、5.の結果のパスとの関係から、別のpythonにインストールしたものを読み込んでる、ということではなさそう
batafulai

2022/05/21 01:22

質問の追記をせずに大変申し訳ございませんでした。今度は自分のユーザー名と改行以外は何もしていないのを載せておきます。 PS C:\programming\python_introduction> where pip PS C:\programming\python_introduction> PS C:\programming\python_introduction> where python PS C:\programming\python_introduction> where pipとwhere pythonは実行しても上のように結果が何も表示されません
quickquip

2022/05/21 01:35

PowerShellだと Get-Command pip Get-Command python でしょうか??
batafulai

2022/05/21 01:36

where pip, where pythonの結果は何も起きず PS C:\programming\python_introduction> python -VV Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] PS C:\programming\python_introduction> pip -V pip 22.1 from C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\lib\site-packages\pip (python 3.9) PS C:\programming\python_introduction> python -c "import sys; print(sys.path); print(sys.executable)" ['', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\python39.zip', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\DLLs', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\lib', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39', 'C:\\Users\\〇〇〇\\AppData\\Roaming\\Python\\Python39\\site-packages', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\win32', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\win32\\lib', 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\Pythonwin'] C:\Users\〇〇〇\AppData\Local\Programs\Python\Python39\python.exe PS C:\programming\python_introduction> python -c "import site; print(site.getsitepakcages())" Traceback (most recent call last): File "<string>", line 1, in <module> AttributeError: module 'site' has no attribute 'getsitepakcages' PS C:\programming\python_introduction> pip show pywinauto Name: pywinauto Version: 0.6.8 Summary: A set of Python modules to automate the Microsoft Windows GUI Home-page: http://pywinauto.github.io/ Author: Mark Mc Mahon and Contributors Author-email: pywinauto-users@lists.sourceforge.net License: BSD 3-clause Location: c:\users\〇〇〇\appdata\local\programs\python\python39\lib\site-packages Requires: comtypes, pywin32, six Required-by:
batafulai

2022/05/21 01:39

PS C:\programming\python_introduction> Get-command pip CommandType Name Version Source ----------- ---- ------- ------ Application pip.exe 0.0.0.0 C:\Users\orcbo\AppData\Lo… PS C:\programming\python_introduction> Get-command python CommandType Name Version Source ----------- ---- ------- ------ Application python.exe 3.9.150.1… C:\Users\orcbo\AppData\Lo… Get-commandにすると行けました。ありがとうございます。
jbpb0

2022/05/21 02:05

> python -c "import sys; print(sys.path); print(sys.executable)" の結果に > 'C:\\Users\\〇〇〇\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages' が入ってますけど、これは「sys.path.append」がされてない状態の結果ですよね? もしそうなら、「sys.path.append」は要らないはずなのですが
batafulai

2022/05/21 02:28 編集

しかし、sys.path.appendをなしにして実行しても以下のようなエラーが起きます。 S C:\programming\python_introduction> & C:/Users/orcbo/AppData/Local/Microsoft/WindowsApps/python3.9.exe c:/programming/python_introduction/try.py Traceback (most recent call last): File "c:\programming\python_introduction\try.py", line 4, in <module> from pywinauto import Desktop, Application ModuleNotFoundError: No module named 'pywinauto' そこで、C:/Users/.../python39.exeのファイルを開くと、「予期しないエラーのため、エディターを開くことが出来ません」と出ました。これが原因なのでしょうか?一応、python --versionを実行するとPython 3.9.0の結果は出ます。
quickquip

2022/05/21 04:13

> sys.path.appendを使って > しかし、sys.path.appendをなしにして とは実際にはどういう作業をしているんですか? "c:\〇〇〇\〇〇〇\〇〇〇\〇〇〇.py" の先頭に書いているのだろうと思ってましたが違いますか? 「やっていること」が回答者側に伝わってない(間違って伝わっている?)のかも、と思いました。
batafulai

2022/05/21 04:41 編集

主に〇〇〇.pyのソースコードの一行目にimport sys、二行目にsys.path.append(importしたいモジュールのlocationで確認したパス)を書いています。jupyter notebookの方ではsys.path.append()を使わなくてもしっかりと動くので、もし解決が難しそうであれば、そちらの方を使っていくので、ここまでお付き合いしてもらって身勝手ということは分かっているのですが、大変申し訳ありません。そして、今まで解決に助力してくださって本当にありがとうございます。
jbpb0

2022/05/21 22:24

何でsys.pathにappendしないといけないかは置いといて、現状先に進めないエラー > No module named 'win32api' > pipを使ってpywin32をインストールして、pywin32のパスを利用して同様にsys.path.appendを使ったのですが、変わらないエラーが出ました。 は、前にもコメントしましたが、下記のベストアンサーに書かれてる手順でpywin32をインストールしても、直りませんでしょうか? https://teratail.com/questions/334307 jupyterでやるから、エラーが出る環境はもう触るつもりは無い、ということなら、このコメントはスルーしてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問