2012-12-17 76 views
2

我想編寫一個使用lxml庫的Python程序(請參閱http://lxml.de/)。當然,我想與其他人分享我的程序,並希望在不同的計算機上運行它。哪裏可以放python第三方模塊(lxml)?

現在,我有一個文件夾包含lxml模塊和一個可以導入的python文件。現在,這個導入不起作用並拋出一個異常。您可以在下面的圖像中看到所有細節和概述: http://www.qpic.ws/images/pythonprob.png

搜索此錯誤,建議將放置到我的路徑中的lxml源文件夾的路徑。但是:我希望程序能夠在不同的計算機上工作,而無需操作他們的PATHes/PYTHONPATHes!該模塊應該只在本地環境中引用,這意味着應該只在我的程序旁邊的一個文件夾中。我認爲,它是否是lxml或其他第三方模塊集合並不重要。

我理解了一些嚴重錯誤的東西,還是有一個簡單的解決方案來滿足我的需求?

系統: 的Python 3.3 •Windows 7的

提前

謝謝!

+0

您可以使用'sys.path.append()'注入路徑。另一種方法是使用Py2exe或cx_Freeze將腳本捆綁到獨立的可執行文件中。 – Blender

+0

@Blender是正確的 - 通常的做法是使用'py2exe'或等價的方法,或者通過將'lxml'列爲自述文件中的依賴項來讓用戶處理它。 (不用說,後者對於主要針對Linux用戶的開源項目,前者針對Windows的商業或免費軟件工具,以及針對兩者之間的項目而言更常見,您可能必須同時執行這兩項操作。 ) – abarnert

+0

謝謝,很高興看到有多種方式(幾乎總是在編程方面)來處理我的問題。恩,我嘗試了sys.path.append(),但是我確實使用了錯誤或者不合格的路徑。實際路徑如何? – Above

回答

1

lxml.etree是一個已編譯的擴展。將lxml源文件夾放入sys.path是不夠的。 嘗試從http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml下載lxml-3.0.2.win-amd64-py3.3.‌exe,使用解壓縮程序打開安裝程序文件,例如, WinRAR,並將當前的lxml源目錄替換爲安裝程序中的lxml文件夾。

+0

謝謝,現在它應該如此! – Above

3

virtualenv中安裝LXML,並從該環境運行程序。這將無縫地處理您的PATH問題。在不同的計算機上,您可以構建新的virtualenvs並安裝依賴項。

+0

對不起,但這並沒有解決我的問題,因爲那樣我就會強制每個分配程序的用戶安裝虛擬環境。我只想部署一個可以運行的帶有program.py的文件夾。 – Above

相關問題