Python - 无法导入,nosetests抛出错误

时间:2015-08-05 14:54:02

标签: python python-2.7 path

我是Python的新手,我刚刚开始制作一个骨架目录来开始分发我的项目等等。我按照LPTHW书(练习46)编写了目录,就像他说的那样,但也阅读了安装脚本和Distutils的文档。 我现在在Windows上,我用这种方式构建它:

C:\Python27\projects
            - skeleton
            - newproj
                 - (d) bin
                      - foo.py
                 - (d) docs
                 - (d) newproj
                      - __init__.py
                 - (d) tests
                      - __init__.py
                      - newproj_test.py
                 - setup.py

setup.py与文档示例相同:

from distutils.core import setup
setup(name = 'foo',
      version = '1.0',
      py_modules = ['foo'],
      )

在' init '脚本中有一些我不太明白的原因,但是:

from nose.tools import *
import foo

def setup():
    print "SETUP!"

def teardown():
    print "TEAR DOWN!"

def test_basic():
    print "I RAN!"

在newproj中我有一个bin目录,在其中我编写了一个名为foo.py的简单脚本。问题是我打开Python解释器并且它在任何地方都找不到foo.py.如果我去cmd,我必须一直到C:\ Python27 \ projects \ newproj \ bin然后键入python,所以我能够导入foo。我怎么能改变呢?有没有办法导入东西而不是去脚本/模块/程序的确切位置(不知道它们之间的确切差异)来导入它?

真正的问题是我应该在newproj目录上运行nosetests并且它不应该抛出任何错误,但确实如此,它说没有名为foo的模块,我不知道该怎么做现在,我有点尝试了一切。我将Path变量更改为以下三个:C:\ Python27 \ Scripts; C:\ Python27; C:\ Python27 \ projects

2 个答案:

答案 0 :(得分:0)

尝试将C:\Python27\projects\newproj\bin添加到PYTHONPATH环境变量

答案 1 :(得分:0)

  

我必须一直到C:\ Python27 \ projects \ newproj \ bin然后键入python,所以我能够导入foo。我怎么能改变呢?

我也正在努力学习python。初学者犯的最大错误之一就是一直到确切的文件位置。永远不要那样做!!在你的情况下,你应该在C:\ Python27 \ projects \ newproj然后从那里你在你的shell中键入python并导入foo使用:

from bin import foo

但在成功导入之前,您需要确保拥有 您导入的目录中的init.py文件。