在自定义目录中安装ruamel.yaml时导入Python错误
我正在使用python 2.7.13和
我在安装到自定义目录中时导入ruamel.yaml时遇到问题。在自定义目录中安装ruamel.yaml时导入Python错误
**ImportError: No module named ruamel.yaml**
使用的命令如下:
pip install --target=Z:\XYZ\globalpacks ruamel.yaml
我已经此自定义目录添加到PYTHONPATH环境变量
,并且还具有在该位置处的文件.pth与以下行Z:\XYZ\globalpacks\anotherApp
Z:\XYZ\globalpacks\ruamel
还有另一个应用程序安装类似于t他上面的设置
它工作。
我在这里错过了什么?
PS:当我在站点包文件夹
也是它在自定义文件夹工作时,我在ruamel文件夹中创建一个初始化 .py文件
安装它的工作原理。
编辑:
由于我们的内容制作软件使用Python 2.7,我们只限于
使用same.We选择对所有
机,并设置进口路径安装Python的同一版本指向共享的
网络驱动器上的模块/应用程序。
像上面提到的那样,它可以在python的网站包中使用,但不能在网络驱动器上使用
这是在PYTHONPATH env变量。
的ruamel.yaml-**.nspkg.pth
和ruamel.ordereddict-*-nspkg.pth
是
尽职尽责installed.Sorry没有给予完整的详细信息earlier.Your输入
都大加赞赏。
您应该从.pth
文件中删除第二行,因为包名称为ruamel.yaml
(即名称空间包),而不是ruamel
。该行会干扰正确的加载,并且pip install
应该已经创建适当的ruamel.yaml-0.15.34-py3.6-nspkg.pth
文件。
在Windows上我不能方便地测试这一点,但这里是在Linux上是什么在起作用:
$ mkdir /tmp/globalpacks
$ mktmpenv
Using real prefix '/opt/python/3.6.3'
New python executable in /home/venv/tmp-10a2a253b4063883/bin/python
Installing setuptools, pip, wheel...done.
This is a temporary environment. It will be deleted when you run 'deactivate'.
(tmp-10a2a253b4063883) $ pip install --target /tmp/globalpacks ruamel.yaml
Collecting ruamel.yaml
Using cached ruamel.yaml-0.15.34-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: ruamel.yaml
Successfully installed ruamel.yaml-0.15.34
(tmp-10a2a253b4063883) $ python
Python 3.6.3 (default, Oct 5 2017, 07:00:09)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ruamel.yaml
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'ruamel'
>>> import sys
>>> sys.path.insert(0, '/tmp/globalpacks')
>>> import ruamel.yaml
>>> >>> print(ruamel.yaml.__version__)
0.15.34
设置PYTHONPATH
应该工作一样sys.path
真正的问题将是当然的无论你是否真的在磁盘空间上非常紧张,以至于你需要拥有那个(共享的)globalpacks
目录。如果没有,你应该总是在你创建和使用的每个virtualenv中安装像ruamel.yaml
这样的软件包。这样,如果升级软件包并出错,那么同时打破所有程序的可能性就会小得多。如果它是新的virtualenvs的安装速度,那么你应该看看devpi
以在本地缓存包。如果你对每个virtualenv都有本地化的东西,那么当你完成它时,你可以把它扔掉,而不是在你的globalpacks
目录中仍然存在指向ruamel.yaml
(或任何其他包)的virtualenv时跟踪自己。 (如果你使用的是,为了globalpacks不弄乱安装Python的site-packages
,你应该开始使用virtualenv
)
我已删除从.pth文件中的条目,但错误仍然存在'从ruamel.yaml进口YAML' \t'ImportError:No module named yaml' –
基于这个小小的反馈,我不打算设置一台机器来测试这个Windows并安装和过时的2.7版本,猜测你做了什么。我不知道你是否正在使用virtualenv,不管你是否像我一样尝试运行命令,以及确切的输出是什么。我不知道在安装后你的'globalpacks'目录中是否有'ruamel.yaml - **。nspkg.pth'文件,也不知道你为什么不把它安装到virtualenv的站点包中。请使用所有这些信息更新(编辑)您的帖子(当您这样做时,请勿使用**编辑:**) – Anthon