包存储在 python 中的位置(尝试安装 dragnet)

where packages are stored in python (trying to install dragnet)

我一直在努力安装一个名为 dragnet 的 python 包,我突然意识到我对包的存储位置以及它们在 python 中的访问方式知之甚少。当我在 python 中导入 X 时,python 采取了哪些步骤来尝试导入包?

我安装了 anaconda,看起来很多存储在 ~/anaconda/pkgs 中,名称如 "argcomplete-0.8.4-py27_0"。

一堆其他包在 /Library/Python/2.7/site-packages 中。有时 conda install X 不起作用,但 pip install 可以(conda pip 已贬值),在这些情况下,包通常会在这里结束。 planout 和 dragnet 都是此类包的示例。

然而,尽管 Dragnet 存在于 /Library/Python/2.7/site-packages 中,但它不想导入。当我直接进入文件夹 /Library/Python/2.7/site-packages in ipython 时,它将正常导入。我不知道把它放在哪里,或者当它不在文件夹中时如何让它可以访问?如果能提供一个关于打包、包位置和导入的好教程或概述的指针,我将不胜感激 python。

如果您无法使用 anaconda 安装,而您需要以另一种方式安装,而另一种方式最终导致安装不在 anaconda 包文件夹中(假设您最终得到一个新的安装在 /Library/Python/2.7/site-packages 中),合理的解决方法如下:

import sys
sys.path.append('/Library/Python/2.7/site-packages')
import desired_package_found_in_that_folder

这将强制 python 在该文件夹中查找包。

使用 Virtualenv 创建虚拟环境,而不是全局安装包。这将帮助您隔离不同的项目,并使依赖关系和包管理更加容易。

在此处阅读文档:https://virtualenv.pypa.io/en/latest/