繁体   English   中英

点子编辑模式“找不到模块”

[英]pip editing mode “Module not found”

我正在尝试在可编辑模式下使用通过pip进行的项目。 我进行了广泛的搜索,发现有几个人遇到了这个问题( https://github.com/pypa/pip/issues/3 ),尽管提到的解决方案对我而言并不奏效。

我在这里创建了一个示例项目: https : //github.com/lfoppiano/testPip ,在几个依赖关系中,问题在于http://github.com/hirmeos/entity-fishing-client-python (请参见分支newVersion )。

我已经用python 3:配置了virtualenv:

(venv3) Johan:hirmeos lfoppiano$ python --version
Python 3.6.5

如果我安装各种依赖项

(venv3) Johan:testPip lfoppiano$ pip install -r requirements.txt
Requirement already satisfied: requests==2.18.4 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (2.18.4)
Requirement already satisfied: zenlog==1.1 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from -r requirements.txt (line 2)) (1.1)
Requirement already satisfied: bottle in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from -r requirements.txt (line 3)) (0.12.13)
Requirement already satisfied: networkx in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from -r requirements.txt (line 4)) (2.1)
Requirement already satisfied: beautifulsoup4 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from -r requirements.txt (line 5)) (4.6.0)
Collecting entity-fishing-client>=0.3.0 (from -r requirements.txt (line 6))
Requirement already satisfied: urllib3<1.23,>=1.21.1 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 1)) (1.22)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 1)) (3.0.4)
Requirement already satisfied: idna<2.7,>=2.5 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 1)) (2.6)
Requirement already satisfied: certifi>=2017.4.17 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests==2.18.4->-r requirements.txt (line 1)) (2018.1.18)
Requirement already satisfied: colorlog in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from zenlog==1.1->-r requirements.txt (line 2)) (2.10.0)
Requirement already satisfied: decorator>=4.1.0 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from networkx->-r requirements.txt (line 4)) (4.2.1)
Installing collected packages: entity-fishing-client
Successfully installed entity-fishing-client-0.4.0
(venv3) Johan:testPip lfoppiano$ 

一切正常:

(venv3) Johan:testPip lfoppiano$ python RootPage.py 8080
Bottle v0.12.13 server starting up (using WSGIRefServer())...
Listening on http://0.0.0.0:8080/
Hit Ctrl-C to quit.

但是,如果我通过可编辑模式下的pip安装依赖项Entity-fishing-client newVersion branchhttps : //github.com/hirmeos/entity-fishing-client-python/tree/newVersion

(venv3) Johan:hirmeos lfoppiano$ git clone git@github.com:hirmeos/entity-fishing-client-python.git testDependency
Cloning into 'testDependency'...
remote: Counting objects: 182, done.
remote: Total 182 (delta 0), reused 0 (delta 0), pack-reused 182
Receiving objects: 100% (182/182), 31.71 KiB | 328.00 KiB/s, done.
Resolving deltas: 100% (83/83), done.
(venv3) Johan:hirmeos lfoppiano$ git checkout newVersion



(venv3) Johan:hirmeos lfoppiano$ cd testDependency/
(venv3) Johan:testDependency lfoppiano$ git checkout newVersion
Branch 'newVersion' set up to track remote branch 'newVersion' from 'origin'.
Switched to a new branch 'newVersion'

(venv3) Johan:testDependency lfoppiano$ cd ..    
(venv3) Johan:hirmeos lfoppiano$ cd testPip/
(venv3) Johan:testPip lfoppiano$ pip install -e ../testDependency/
Obtaining file:///Users/lfoppiano/development/inria/projects/hirmeos/testDependency
Requirement already satisfied: requests in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from entity-fishing-client==0.4.0) (2.18.4)
Requirement already satisfied: zenlog in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from entity-fishing-client==0.4.0) (1.1)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests->entity-fishing-client==0.4.0) (1.22)
Requirement already satisfied: idna<2.7,>=2.5 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests->entity-fishing-client==0.4.0) (2.6)
Requirement already satisfied: certifi>=2017.4.17 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests->entity-fishing-client==0.4.0) (2018.1.18)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from requests->entity-fishing-client==0.4.0) (3.0.4)
Requirement already satisfied: colorlog in /Users/lfoppiano/.virtualenvs/venv3/lib/python3.6/site-packages (from zenlog->entity-fishing-client==0.4.0) (2.10.0)
Installing collected packages: entity-fishing-client
  Running setup.py develop for entity-fishing-client
Successfully installed entity-fishing-client
(venv3) Johan:testPip lfoppiano$ 

当我运行它时,出现错误:

(venv3) Johan:testPip lfoppiano$ python RootPage.py 
Traceback (most recent call last):
  File "RootPage.py", line 9, in <module>
    from nerd.nerd import NerdClient
ModuleNotFoundError: No module named 'nerd'

先感谢您

您将无法在开发模式下安装和使用entity-fishing-client ,因为setuptools无法在开发模式下使用package_dir处理程序包名称映射。 这是一个老问题 每当您需要应用更改时,要么不使用开发模式并手动重新安装: pip uninstall -y entity-fishing-client && pip install testDependency/或将包根目录重命名为nerd并调整设置脚本:

$ pip uninstall -y entity-fishing-client
$ rm -rf testDependency/entity_fishing_client.egg_info
$ mv testDependency/entity-fishing_client testDependency/nerd
$ sed -i '/package_dir=/d' testDependency/setup.py
$ pip install --editable testDependency/
$ python -c "from nerd.nerd import NerdClient; print('ok')"
ok

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM