簡體   English   中英

導入模塊時,如何指定解釋器來編譯模塊?

[英]When importing a module, how do I specify an interpreter to compile the module?

我編寫了一個模塊(mymodule32.py),其中包含僅支持32位Python的庫。 我想將此模塊導入64位Python文件(main64.py)。 但是搜索之后,我意識到,如果我以64位Python導入模塊,則將使用64位解釋器對其進行編譯。 我將在main64.py中導入mymodule32.py,但我想使用32位解釋器對其進行解釋。

我安裝了Python 3.5 64位,並且在Anaconda虛擬環境中以py35_32的名稱安裝了Python 3.5 32位。 我在想要的下面寫了偽代碼(當然不起作用)。

import(interpreter = py35_32) mymodule32

您無法使用import做任何事情。 解釋器是單個進程,不能在64位和32位模式之間切換。

您的選擇是

  • 在Python 32位二進制文​​件中運行所有代碼。 您可以通過測試sys.maxsize == (2 ** 31 - 1)來防止使用64位二進制文​​件。

  • 也使您的庫在64位解釋器上也能正常工作(只需確保正確屏蔽了32位算術)。

  • 運行另一個Python進程作為子進程; 該子進程將導入您的模塊,並使用某種形式的IPC(進程間通信)在父64位進程和子32位解釋器之間傳遞數據和結果。 但是,這里沒有現成的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM