いくつかの定義済み関数を含むpythonスクリプトを別のpythonスクリプトusing this approach via SOにインポートしようとしています。私がインポートしたいスクリプトは多くの関数を定義しています(そのうちのいくつかは他の関数の中に入れ子になっています)ので、各関数ではなくスクリプト全体を個別にインポートしたいと考えています。私は以下の簡単な例を使用しています。定義済みのすべての関数をpythonスクリプト1からPythonスクリプト2にインポートするにはどうすればいいですか?
は私が'workspace'
という名前の私のdesktop
上のフォルダを持っていると言います。フォルダ'workspace'
には、'pre.py'
という名前のスクリプト(以下で定義されている)と空白のファイル'__init__.py'
が含まれています。同じ'workspace'
フォルダで
def get_g(x):
""" Sample Function """
if isinstance(x, list):
res = [xi**2 for xi in x]
else:
res = x**2
return res
、私は'pre.py'
で定義されたすべての関数をインポートしたいと思いれる'post.py'
という名前のスクリプトは、そこにあります。 'post.py'
のサンプルスクリプトは次のとおりです。
試行#1:
import matplotlib.pyplot as plt
def get_my_imports(script_name, fileloc="/Users/myname/Desktop/workspace"):
""" Import Sample Function (defined above) """
from fileloc import script_name
get_my_imports('pre.py')
x = np.linspace(1, 10, 100)
y = get_g(x)
plt.plot(x, y)
plt.show()
>> ImportError: No module named 'fileloc'
試行#2:
import matplotlib.pyplot as plt
from "/Users/myname/Desktop/workspace" import 'tst.py' ## error in this line
x = np.linspace(1, 10, 100)
y = get_g(x)
plt.plot(x, y)
plt.show()
>> SyntaxError: invalid syntax
私の最初の試みで、私はPYスクリプトをインポートするのアプローチを一般化しようとしました。しかし、通訳者はfileloc
が私の意図ではなくインポート可能なモジュールだと思っています。私の2番目の試みは、私がこれを行う方法の根本的な何かを理解していないと伝えています。このスタイルのアプローチは、どのように正しく機能するように適応できますか?あなたの2つのpythonファイルが同じワークスペースフォルダ内にあるので(それはファイルの場所に関係だ場合、私はリンゴのラップトップを使用しています。)
リンク先を参照してください。^ –