【发布时间】:2015-08-05 14:54:01
【问题描述】:
我在 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
【问题讨论】:
-
您的 setup.py 与来自the exercise 的不对应。无关:我不确定
tests/__init__.py(它创建顶级测试Python 包)和bin/foo.py(除非你有几十个脚本,bin目录不能证明摩擦是合理的)。
标签: python python-2.7 path