setup.py并安装python项目

时间:2012-02-07 22:56:04

标签: python

我查看了setup.py文档,但仍然遇到一些我认为应该非常基本的困难。

我已将其分解为一个我正在尝试运行的简单示例项目,我的项目目录布局如下:

myproject
  setup.py
  src\
    main.py
      extern\
      __init__.py
      mytest.py

的myproject / setup.py:

#!/usr/bin/env python
from distutils.core import setup

setup(name = "myproject",
      package_dir = {'':"src"},
      packages = ["extern"],
      scripts = ["src/main.py"],
      )

的myproject / SRC / main.py:

#! /usr/bin/env python
import extern.mytest as mytest

mytest.print_test()

的myproject / SRC /的extern / mytest.py:

#!/usr/bin/env python
def print_test():
    print "YAY"

myproject / src / extern / _ init _。py为空白。

我正在运行setup.py:

setup.py install --prefix ~/local

setup.py将完成没有错误并将main.py移动到〜/ local / bin但是当我运行它时我收到以下错误:

ImportError: No module named extern.mytest

知道我做错了什么吗?谢谢!

1 个答案:

答案 0 :(得分:7)

问题是该模块不在sys.path之下,而import语句无法找到该模块。

就我而言,extern模块安装在~/local/lib/python2.7/site-packages/extern下。但请注意,安装过程中安装路径被任意设置为~/local

要解决此问题,您可以将PYTHONPATH变量设置为模块的安装位置,或将该路径添加到sys.path中的main.py

或者,而不是:

setup.py install --prefix ~/local

使用:

setup.py install --user

这将安装在您的用户站点包目录(我的平台中的~/.local)中,python将能够毫无问题地找到该包。但是,您可能需要更改PATH环境变量以包含~/.local/bin