🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

2回答

1305閲覧

WSLでインストールしたパッケージを元々インストールしてあるPythonに適用する方法

nekonoko

総合スコア5

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2019/09/12 06:08

編集2019/09/12 06:23

前提・実現したいこと

Python3の教本のpipの使い方を学ぶ章でWSLを用いて勉強していたのですが、ubuntuではインストールしたことになっているパッケージがWSLに入っているPythonにしか適用されず、もともとwindowsで使用していたPythonに適用されていないようです。WSLでもともとWindowsにインストールしていたPythonのパッケージ管理をする方法を教えてください。 

発生している問題・エラーメッセージ

Traceback (most recent call last): File "F:\python3\Flask.py", line 1, in <module> from flask import Flask ModuleNotFoundError: No module named 'flask'

該当のソースコード

from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "Hello, World!" app.run(port=8000)

試したこと

調べた限りではPATHを通せば認識されると理解したので.bashrcに

export PYTHONPATH="C:\Users\PER9\AppData\Local\Programs\Python\Python37\Lib:$PYTHONPATH"

と入力しましたがそこからの操作がわからず止まっています。

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

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

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

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

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

guest

回答2

0

できません。

WSL上のPythonとWindowsに直接インストールしたPythonは別のOS上のものだと考えるべきです。

仮にPATHを通してできたとしても、WSLはLinux、WindowsはWindowsなので、インストールされているライブラリに互換性がありません。

(互換性のあるものもありますが、1つでもあれば動作しなくなると思った方がよいですし、その問題を解決できる知識があれば、そういう不安定なことをやろうとは考えない、という感じです)。

投稿2019/09/12 06:28

shimizukawa

総合スコア1847

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

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

nekonoko

2019/09/12 06:37

回答ありがとうございます。一度WSLのことは置いておいてWindowsからインストールを試みようと思います。
guest

0

ベストアンサー

ubuntu=WSLになっているはずですので、ubuntuでpipインストールしたパッケージはWSL=ubuntuのPythonから参照できるようになっています。

WindowsとWSLはDiskを共用しているので、うまくやればパッケージを共用できるかもしれませんが、Pythonその他のバージョンがずれているかもしれませんので、Windows上で新たにpipインストールした方がよいと思います。

export PYTHONPATH="C:\Users\PER9\AppData\Local\Programs\Python\Python37Lib:$PYTHONPATH"

WSL側から上記のPATHは見えていないのではないですか?
※手元に実機がないので確認していないのですが。

うろ覚えですが、Windows側のC:\はWSL側の/MNT/Cにマウントされていたと思います。

後やる意味はないかと思いますが、以下のようにすればUbuntu側のPythonで起動できるかもしれません。

bash

1C:\Windows\System32\wsl.exe python3 C:\source\hogehoge.py

投稿2019/09/12 06:23

編集2019/09/12 06:44
nandymak

総合スコア799

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

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

nekonoko

2019/09/12 06:34

わかりやすい回答ありがとうございました。 PATHに関しては仰る通り/mnt/cでないと認識されないようです。 またpipインストールについても原則WSLとWindowsで共用はしない方がよいということでもう一度コマンドプロンプトからpipインストールを試みようと思います。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問