我是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
答案 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文件。