代码之家  ›  专栏  ›  技术社区  ›  Pickels

Python:使用下载的模块

  •  10
  • Pickels  · 技术社区  · 15 年前

    我是Python新手,主要使用自己的代码。但是现在我下载了一个软件包,我需要解决一些问题。

    结构示例:

    root\
        externals\
            __init__.py
            cowfactory\
                __init__.py
                cow.py
                milk.py
    
        kittens.py
    

    __init__.py from cowfactory import cow . 这会导致导入错误。

    我可以修复它并将import语句更改为 from externals.cowfactory import cow 但有些事情告诉我,有一个更简单的方法,因为它不是很实际。

    我想我得和那个 但我不知道是什么。

    3 回复  |  直到 15 年前
        1
  •  7
  •   AndiDog    15 年前

    from . import cow . 这个 __init__.py 不需要外部文件。假设您的项目位于root\中,并且cowfactory是您下载的外部软件包,则可以通过两种不同的方式完成:

    1. 外部Python包通常附带一个文件“设置.py“这样你就可以安装了。在Windows上,它将是命令“设置.pybdist\u wininst“并且您在“dist”目录中得到一个EXE安装程序(如果它构建正确的话)。使用该安装程序,包将安装在Python安装目录中。之后,你可以简单地做一个 import cowfactory 就像你会做的那样 import os .

      如果您安装了pip或easy\u安装:许多外部软件包都可以随它们一起安装(pip甚至允许轻松卸载)。

    2. 使用蟒蛇进行开发

      set PYTHONPATH=%PYTHONPATH%:externals
      yourprogram.py
      

      我实际上在做类似的事情,但是使用PyDev+Eclipse。在这里,您可以更改“runconfigurations”以包含值为“externals”的环境变量PYTHONPATH。设置环境变量后,您可以 进口牛仔工厂 在你自己的模块里。注意这比 from external import cowfactory

    同样的解决方案当然也适用于Linux,但是命令不同。

        2
  •  1
  •   aaronasterling    15 年前

    easy_install 我们的 pip 将其安装到相应的目录中。有一个 site-packages windows上的目录,如果无法使用,则可以在其中放置包 易于安装 因为某种原因。在ubuntu上 /usr/lib/pythonX.Y/dist-packages . 谷歌搜索你的特定系统。或者你可以把它放在你的任何地方 PYTHONPATH

    一般来说,最好 将第三方lib放在程序目录结构中(尽管对这个vis源代码管理有不同的看法)。这将使目录结构尽可能的简约。

        3
  •  1
  •   kirbuchi    15 年前

    export $PYTHONPATH=$PYTHONPATH:/root/externals/
    

    您可以添加任意数量的文件夹(由单独的文件夹提供) )而python在导入时会查看所有这些文件夹。