我正在運行Windows 8.我剛剛下載了ActivePerl,並且正在通過Padre運行代碼。我使用PPM來安裝所需的模塊,但是當我嘗試運行代碼時,出現錯誤「Can not locate Tk.pm」。模塊是否安裝在錯誤的位置?我如何找到模塊?在使用PPM進行安裝後,無法在@inc中找到模塊
編輯:我不確定問題是什麼,我可能永遠不會知道。我卸載Perl,重新啓動我的電腦,再次安裝它,一切正常。
我正在運行Windows 8.我剛剛下載了ActivePerl,並且正在通過Padre運行代碼。我使用PPM來安裝所需的模塊,但是當我嘗試運行代碼時,出現錯誤「Can not locate Tk.pm」。模塊是否安裝在錯誤的位置?我如何找到模塊?在使用PPM進行安裝後,無法在@inc中找到模塊
編輯:我不確定問題是什麼,我可能永遠不會知道。我卸載Perl,重新啓動我的電腦,再次安裝它,一切正常。
下面是檢查安裝是否正常的方法,只是一種解決方法,在生產中使用它之前再考慮一下。
首先,檢查您的硬盤中是否存在Tk.pm
。一種方法是安裝Everything並搜索文件。 如果該文件存在,並且在一個目錄,如"C:/some_path/TK.pm"
然後在劇本,通過use lib 'C:/some_path'
指定路徑,這將增加'C:/some_path'
到perl模塊搜索路徑。那麼use Tk
應該沒問題。
use lib 'C:/some_path';
use Tk;
print join ", ", @INC; # see the search path
這個可能完成的唯一的事情就是讓一個'perl'使用另一個'perl'安裝的模塊,這很糟糕。請記住,該模塊是由'ppm'安裝的,而不是'cpan' /'cpanm',所以(據我所知),它不能安裝在「不正確的」位置。 – ikegami
難道模塊得到安裝在錯誤的位置?
不,據我所知,ppm
是無法做到這一點。
想到三種可能性。
您安裝使用一個perl
模塊,但您使用時策略平臺使用不同的一個。 (解決方法:安裝使用正確的Perl模塊,由Perl的bin
DIR使用ppm
或cpan
意思。)
有某種權限問題的防止模塊被發現。 (不太可能,如果您使用與試圖使用它的用戶相同的用戶安裝模塊)。
安裝失敗。 (你得到什麼錯誤?)
如果您需要進一步的幫助,你可以請提供dir /s/b c:\Tk.pm
的ouptut和perl -le"print $^X"
輸出?
你可以有兩個Perl的安裝? – ikegami
模塊安裝是否成功完成?它完成了嗎?這是非常含糊的,如果你可以發佈安裝日誌的輸出,它會讓我們更容易看到出了什麼問題。 – 2017-02-20 06:07:15
@Gerry,ppm幾乎只是解壓縮一個預編譯的軟件包。如果軟件包存在,失敗是不可能的。 – ikegami