2017-05-16 7 views
0

現在、別の.pyファイルから関数をロードしようとしています。私は同じフォルダにalgo.pyとtest_algo.pyを持っています。私はので、私はコマンドを使用test_algoにALGOからすべての関数をインポートする必要があります。Pythonのインポートを使用して、古いバージョンのスクリプトをインポートします。

from algo import *

インポートが成功ししかし、一つの機能do_sthg()はアルゴで3つの引数を取りますが、インポートされたバージョンがでそうであった4つの引数を必要としています非常に古いバージョンのコードです。すべての.py〜関連ファイルを削除しました。私のコンピュータにalgoという名前の他のスクリプトはありません。どのようにそれが可能で、私はこの問題をどのように解決できますか?

(それは時間をかけて変更する必要がありますように私は、私は、Pythonの2.7バージョンを使用しています、私のスクリプトへの完全なリンクを指定することはできません)

任意の助けいただければ幸いです。

+0

これを引き起こすいくつかのコード例を教えてください。 – randomdude999

+0

トレースバックを共有できますか? –

+0

'import algo'を試してから' print algo'を実行すると、モジュールがロードされたファイルの名前が表示されます。 'import sys'そして' print sys.path'を深刻な疑念の中に入れます。また 'rm * .pyc'も同様です。 – 9000

答えて

0

私は問題がどこにあるかを特定できなかったため、osのgetcwdコマンドを使用してフルパスを指定しました。それはこれまで働いていた。つまり、隠された.pycまたは.py〜ファイルをどこかに置かなければならないということです。

0

ファイルは常に独自の名前空間内にインポートする必要があります。あなたは使用する必要があります

import algo 
import test_algo as algoT 

print(algo.do_sthg(p1, p2, p3)) 
print(algoT.do_sthg()) 

こうすることで、異なるファイルから結果を分離することができます。また、iPythonを使用している場合は、exit()にしてもう一度起動する必要があります。

関連する問題