

OSはubuntu17.10です。  
<https://www.tensorflow.org/install/install_linux>  
にあるとおり通りにVirtualenvにtensorflowをインストールし、ターミナルで動かすことに成功しています。具体的には、`import
tensorflow as tf` が成功した上で、`tf.constant` を使った簡単な `sess.run` ができています。

[![ターミナルでtensorflowを動かしたときの画像](https://i.stack.imgur.com/hFVQY.png)](https://i.stack.imgur.com/hFVQY.png)

しかし、jupyter notebookでは import が成功するものの、`tf.constant` を使った時点で `AttributeError:
module 'tensorflow' has no attribute 'constant'` というエラーが出てしまいます。

[![jupyterで動かしたときの画像](https://i.stack.imgur.com/ITd4z.png)](https://i.stack.imgur.com/ITd4z.png)

jupyter notebookはpipでインストールしており、その接続がうまくいってないようですがどうすればいいのかがわかりません。

Virtualenv下でjupyter notebookを起動すると

[code]

    import tensorflow
    
[/code]

ですらエラーがでるようになります。

Virtualenv の元で `pip install jupyter` すると `launchpadlib 1.10.5 requires
testresources, which is not installed.` などのメッセージが出ます。

[![Virtualenvでjupyterをインストールしたときの画像](https://i.stack.imgur.com/EmMBN.png)](https://i.stack.imgur.com/EmMBN.png)


CC BY-SA 4.0
2018-05-29T05:42:46.270
44355
2020-07-20T18:05:10.547
2018-05-29T12:43:03.860
19110
28708
question
python tensorflow jupyter-notebook pip
jupyter notebookでtensorflowが起動しません。


**質問の前半について**

Pythonではモジュールをインポートするとき、ビルトインモジュール、sys.path にあるディレクトリのリストの順で名前を探します。

単に`import`するだけでは、別の環境にあるパッケージを呼び出すことはないのでエラーになります。どうしても呼び出したい場合には、以下のように`tensorflow`パッケージがあるディレクトリを
sys.path に追加することで、`tensorflow`をインポートできるようになります。

[code]

    import sys
    sys.path.append('pathto/site-packages')
    
[/code]

下の文章が気になりますが、`tensorflow.py`というファイルや`tensorflow`というディレクトリをカレントディレクトリ等検索がされるディレクトリに作成してないでしょうか。もし、作成していれば`import
tensorflow`でインポートされているのはそのファイルやディレクトリになり、本来の`tensorflow`のパッケージが読み込まれないことになります。

> jupyter notebookでは import が成功するものの

インポートされたモジュールのpathは、以下のコマンドで表示できるので、確認した方がいいでしょう。

[code]

    print(tensorflow.__path__)    
    
[/code]

**質問の後半について**

質問にあるマニュアルどうりにインストールすると以下のようにインストール済みモジュールを使用するという設定になっています。

[code]

    virtualenv --system-site-packages -p python3
    
[/code]

ところが Ubuntu 18.04
では、そうすると質問に記載されたのと同じような問題が発生します。[GitHubのpipの方](https://github.com/pypa/pip/issues/5372)にも問題が上がっています。Ubuntu17.10
でも同じ問題が発生していると思われます。

取り敢えずこのエラーを無くすためには、仮想環境を作るときにインストール済みモジュールを使わない設定にすればいいです。

[code]

    virtualenv -p python3
    
[/code]


CC BY-SA 4.0
2018-05-29T11:18:17.813
44363
2018-05-30T03:59:19.117
2018-05-30T03:59:19.117
15171
15171
44355
answer