我对Python还不太熟悉,主要使用自己的代码。但现在我下载了一个包,我需要一些问题,我有。
示例结构:
root\
externals\
__init__.py
cowfactory\
__init__.py
cow.py
milk.py
kittens.py
现在,cowfactory的__init__.py
执行from cowfactory import cow
。这会产生导入错误。
我可以修复它,并将import语句更改为from externals.cowfactory import cow
,但有些东西告诉我,有一种更简单的方法,因为它不太实用。
另一个解决方案可能是将cowfactory包放在项目的根目录中,但这也不是很整洁。
我想我必须对externals目录中的__init__.py
文件做些什么,但我不确定是什么。
在cowfactory包中,应该使用相对导入,例如
from . import cow
。不需要外部中的__init__.py
文件。假设您的项目位于根目录下,而cowfactory是您下载的外部包,则可以通过两种不同的方式执行此操作:安装外部模块
外部Python包通常附带一个文件“setup.py”,允许您安装它。在Windows上,它将是命令“setup.py bdist_wininst”,您将在“dist”目录中获得一个EXE安装程序(如果它构建正确的话)。使用该安装程序,包将安装在Python安装目录中。之后,你可以简单地做一个
import cowfactory
就像你做import os
一样。如果您安装了pip或easy_install:许多外部软件包都可以与它们一起安装(pip甚至允许轻松卸载)。
利用Python进行开发
如果要将所有依赖项保存在项目目录中,请将所有外部包保存在externals\文件夹中,并将该文件夹添加到PYTHONPATH中。如果使用命令行,则可以创建包含以下内容的批处理文件
我实际上也在做类似的事情,但是使用了PyDev+Eclipse。在那里,您可以更改“运行配置”以包含值为“externals”的环境变量PYTHONPATH。设置环境变量后,您只需在自己的模块中
import cowfactory
。请注意,这比from external import cowfactory
更好,因为在后一种情况下,一旦安装了项目,它将不再工作(或者必须将所有外部依赖项安装为一个名为“external”的包,这是一个坏主意)。当然,同样的解决方案也适用于Linux,但是使用不同的命令。
最简单的方法是使用环境变量$PYTHONPATH。在运行脚本之前设置如下:
您可以添加任意数量的文件夹(由:单独提供),导入时python将在所有这些文件夹中查找。
通常,您可以使用
easy_install
我们的pip
将其安装到适当的目录中。windows上有一个site-packages
目录,如果由于某种原因不能使用easy_install
,则可以将包放在该目录中。在ubuntu上,它是/usr/lib/pythonX.Y/dist-packages
。谷歌搜索你的特定系统。或者可以将其放在PYTHONPATH
环境变量中的任何位置。一般来说,最好不要将第三方libs放在程序目录结构中(尽管在vis源代码管理方面有不同的意见)。这将使您的目录结构尽可能保持最低限度。
相关问题 更多 >
编程相关推荐