2016-07-04 19 views
0

コマンドラインから管理者としてプログラムを実行しようとしています。かなり簡単だが、私は苦労している。コマンドラインから管理者としてPythonプログラムを実行

私は細かいPythonのIDLEから起動働く、これで開始:

import dropbox, pymysql, shlex, shutil, subprocess 
import logging 
import sshtunnel 
from sshtunnel import SSHTunnelForwarder 

# Main program starts here 
print("Hello World!") 

が、以下のように、それはエラーを与えた:

[email protected]:~ $ sudo python /home/pi/Documents/iot_pm2/iot.py 
Traceback (most recent call last): 
    File "/home/pi/Documents/iot_pm2/iot.py", line 3, in <module> 
    import dropbox, pymysql, shlex, shutil, subprocess 
ImportError: No module named pymysql 

私が先頭に2つの行を追加して、いくつかのグーグル後:

これはPython IDLEでも問題なく動作しますが、コマンドラインから実行してください...私はトレースを読む方法を理解する上で十分ではなく、したがって私がそれを修正するために何ができるのか理解できません。 (さらに、なぜIDLEから非管理者として動作するのか、管理者としてはコマンドラインからではないのか分かりません)誰も助けることができますか?

[email protected]:~ $ sudo python /home/pi/Documents/iot_pm2/iot.py 
Traceback (most recent call last): 
    File "/home/pi/Documents/iot_pm2/iot.py", line 5, in <module> 
    import sshtunnel 
    File "/usr/local/lib/python3.4/dist-packages/sshtunnel.py", line 25, in <module> 
    import paramiko 
    File "/usr/local/lib/python3.4/dist-packages/paramiko/__init__.py", line 30, in <module> 
    from paramiko.transport import SecurityOptions, Transport 
    File "/usr/local/lib/python3.4/dist-packages/paramiko/transport.py", line 50, in <module> 
    from paramiko.dsskey import DSSKey 
    File "/usr/local/lib/python3.4/dist-packages/paramiko/dsskey.py", line 26, in <module> 
    from Crypto.PublicKey import DSA 
    File "/usr/local/lib/python3.4/dist-packages/Crypto/PublicKey/DSA.py", line 89, in <module> 
    from Crypto import Random 
    File "/usr/local/lib/python3.4/dist-packages/Crypto/Random/__init__.py", line 29, in <module> 
    from Crypto.Random import _UserFriendlyRNG 
    File "/usr/local/lib/python3.4/dist-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in <module> 
    from Crypto.Random.Fortuna import FortunaAccumulator 
    File "/usr/local/lib/python3.4/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in <module> 
    from . import FortunaGenerator 
    File "/usr/local/lib/python3.4/dist-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 35, in <module> 
    from Crypto.Util import Counter 
    File "/usr/local/lib/python3.4/dist-packages/Crypto/Util/Counter.py", line 59, in <module> 
    from Crypto.Util import _counter 
ImportError: cannot import name _counter 

ありがとうございました。

+0

は、Pythonのデフォルトは3ですか? sudo python3 ... –

+0

コマンドラインから実行しているPythonが、使用しているPython IDLEとは異なるバージョンのPythonを使用している可能性はありますか? –

+0

Telecが 'which python'であなたのpythonのバージョンで述べたようにチェックすることができます。しかし、最後の行には、ImportErrorがあることが示されています。 _counter関数を既に定義した別のパッケージがあるかもしれません。 – maxie

答えて

0

は、Pythonのデフォルトは3であるのですか?このように実行しようとしない場合:sudoの のpython3 ... - @Koffee

@Koffeeへ

のおかげで我々は答えを持っていると、このスレッドは解決としてマークされ、閉じることができます。

関連する問題