簡體   English   中英

從github將Python軟件包安裝到虛擬環境中,但導入失敗

[英]installing Python package from github into virtual environment works but import fails

  1. 我創建了一個名為PythonApplication的python項目
  2. 我創建了一個虛擬環境env(Python 3.6(64位))
  3. 我在虛擬環境目錄中運行以下命令

pip install git+git://github.com/BillMills/python-package-example.git

我得到: 在此處輸入圖片說明

查看目錄結構

..\PythonApplication\PythonApplication\env\Lib\site-packages\myPackage

我懂了 在此處輸入圖片說明

在此處輸入圖片說明

  1. 然后,我在PythonApplication.py中添加以下代碼

import myPackage

foo = 6
bar = 7

運行此命令時,出現以下錯誤:

ModuleNotFoundError:沒有名為“ somePython”的模塊

我錯過了什么?

基於下面Saurav的評論,我重新執行了步驟。 但是,創建環境后,我確實在命令提示符處將其激活,並在激活的環境而不是命令提示符中運行了pip命令。 結果沒有改變。

有人評論說github.com/BillMills/python-package-example.git用Python 2編寫,在Python 3中不起作用。如果是正確的話,需要更改什么?

在此處輸入圖片說明

您從https://github.com/BillMills/python-package-example使用的包使用的是Python 3不支持的導入樣式。您可以在python-package-example / __ init__.py中看到

import somePython

用於導入子模塊,但是python 3將假定somePython作為頂級模塊存在。 請參閱PEP-328,以獲得更好的解釋。

可以在https://github.com/kennethreitz/samplemod中找到與Python 3兼容的示例程序包。 請注意,在sample / __ init__.py中,子模塊是使用相對導入(由前導“。”指示)導入的:

from .core import hmm 

如果要修改python-package-example以使其兼容,則需要更改其__init__.py以使用絕對導入:

import myPackage.somePython as somePython

或相對進口:

from . import somePython

暫無
暫無

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

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