Я относительно новый в Python, и я только начал работать над созданием каталога скелетов, чтобы начать распространять мои проекты и так далее. Я последовал за книгой LPTHW (упражнение 46) и сделал каталоги так же, как он сказал, но также прочитал документацию для сценария установки и Distutils. Я на Windows, в настоящее время, и я построил это так:Python - не могу импортировать, nosetests throws error
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 у меня есть каталог бен, в котором я написал простой скрипт Ф.О. o.py. Дело в том, что я открываю интерпретатор Python, и он не находит foo.py в любом месте. Если я перейду к cmd, мне придется пройти весь путь до C: \ Python27 \ projects \ newproj \ bin, а затем введите python, чтобы я смог импортировать foo. Как я могу это изменить? Есть ли способ импортировать вещи, а не идти в точном месте сценария/модуля/программы (не знаю точно, какая разница между ними еще), чтобы импортировать его?
Настоящая проблема заключается в том, что я должен запускать nosetests в каталоге newproj, и он не должен вызывать никаких ошибок, но он говорит, что нет модуля с именем foo, и я не знаю, что сделай теперь, я как бы попробовал все. Я изменил переменную Path, чтобы эти три: C: \ python27 \ Scripts; C: \ python27; C: \ python27 \ Проекты
Ваша setup.py не соответствует той, что указана в [упражнении] (http://learnpythonthehardway.org/book/ex46.html). Несвязанный: я не уверен в 'tests/__ init __. Py' (он создает пакеты Python на верхнем уровне) и' bin/foo.py' (если у вас нет десятков скриптов, каталог 'bin' не оправдывает трения). – jfs