2016-06-27 20 views
1

.pyファイル拡張子を使わずにインポートしようとしました。例:import something。それはうまくいきません。私も .pyというinitを作成してパッケージに変換しようとしましたが、まだインポートしたくありません。ああ、私はPython 3.5を使っています。編集:私はPythonistaを使用していますが、現時点ではコンピュータやXcodeにアクセスできません。iOSでpythonファイルをインポートできないpythonista

答えて

1

pythonistaでは、Documentsフォルダはデフォルトでsys.pathにありません。 site-packagesフォルダーは、または現在実行しているスクリプトのパスです。コンソールからimport fooしようとすると、foo.pyを含むパスがsys.pathにない限り、これは失敗します。

次の3つの基本的なオプションがあります。具体的に追加) 1)モジュール&テンプレートから見つかった(サイト・パッケージに、あなたの "ライブラリ" を置くと、本当にパスは〜/書類/のsite-packages)

2でありますインポートの前にパス、(パスはのsys.pathにある場合は、重複を取得しないように、あなたが最初にチェックする必要がありますが)、そのようなあなたがfoo.py内部文書を持っているかのように/ somefolder

sys.path.append(os.expanduser('~/Documents/somefolder')) 
import foo 

3)0を使用する

0

私はあなたがiOSでこれを実行できるかどうかはわかりませんでしたが、別のユーザーからの修正が見つかりました。このコードは私のものではありませんが、sorinのコードです。

import os, sys, inspect 
# realpath() will make your script run, even if you symlink it :) 
cmd_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe()))[0])) 
if cmd_folder not in sys.path: 
    sys.path.insert(0, cmd_folder) 

# use this if you want to include modules from a subfolder 
cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile(inspect.currentframe()))[0],"subfolder"))) 
if cmd_subfolder not in sys.path: 
    sys.path.insert(0, cmd_subfolder) 

# Info: 
# cmd_folder = os.path.dirname(os.path.abspath(__file__)) # DO NOT USE __file__ !!! 
# __file__ fails if script is called in different ways on Windows 
# __file__ fails if someone does os.chdir() before 
# sys.argv[0] also fails because it doesn't not always contains the path 
関連する問題