2014-11-20 9 views
0

Repo расположение: https://github.com/willkara/SakaiPyPython setup.py скрипт не устанавливать модули правильно

Так у меня есть этот питон modudle я создаю. В настоящее время она имеет такую ​​структуру:

SakaiPy 
├── SakaiPy 
│   ├── __init__.py #1 
│   └── RequestGenerator.py 
├── SakaiTools 
    ├── __init__.py #2 
    ├── Assignment.py 
    ├── Announcement.py 
    └── ...etc.py 
└── setup.py 

Init .py # 1 выглядит следующим образом:

__all__=['SakaiTools'] 
from SakaiTools import * 

INIT .py # 2 пуст

Мой setup.py выглядит следующим образом:

version='1.0', 
    description='Python interface to the Sakai RESTful API\'s', 
    license='MIT', 
    author='William Karavites', 
    author_email='[email protected]', 
    url='https://github.com/willkara/SakaiPy', 
    packages=['SakaiPy','SakaiPy/SakaiTools'], 
    requires={ 
      "mechanize", 
      "cookielib", 
      "requests", 
      "simplejson"} 
) 

Моя проблема i что модуль, похоже, неправильно работает.

Когда я пытаюсь использовать модуль вроде этого:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

from SakaiPy import * 

print "hello" 

authInfo={} 
authInfo['baseURL'] ="" 
authInfo['loginURL']="" 
authInfo['username']="" 
authInfo['password']="" 

rq = RequestGenerator.RequestGenerator(authInfo) 

Я получаю эту ошибку:

Traceback (most recent call last): 
    File "../sakaiTest.py", line 14, in <module> 
    rq = RequestGenerator.RequestGenerator(authInfo) 
NameError: name 'RequestGenerator' is not defined 

Я предполагаю, что мой setup.py и инициализации .py сценарии установки неправильно.

ответ

1

Вы хотите изменить структуру своего каталога, так как прямо сейчас у вас есть два модуля Python, и вы даете setuptools неправильный путь пакета. Чтобы получить интересующий вас путь, вам понадобится вставить каталог SakaiTools в каталог SakaiPy. С этим вы сможете иметь импорт, который вы ищете, и можете импортировать SakaiTools как SakiPy.SakaiTools, как будто вы пытаетесь это сделать.

SakaiPy 
├── SakaiPy 
│ ├── __init__.py # make this blank 
│ ├── RequestGenerator.py 
│ └── SakaiTools 
│  ├── __init__.py # keep it blank 
│  ├── Assignment.py 
│  ├── Announcement.py 
│  └── ...etc.py 
└── setup.py 

Это даст вам один модуль с SakaiTools как подмодуль, который звучит как то, что вы ищете. Вам нужно будет вернуть вам SakaiTools импорт с первого __init__.py, так как вы сможете получить доступ к этим импортам только с этой настройкой.


Если вы хотите сохранить два различных модуля, вы будете нуждаться, чтобы сказать setuptools, что у вас есть два различных модулей.

version='1.0', 
description='Python interface to the Sakai RESTful API\'s', 
license='MIT', 
author='William Karavites', 
author_email='[email protected]', 
url='https://github.com/willkara/SakaiPy', 
packages=['SakaiPy','SakaiTools'], 
requires=(
    "mechanize", 
    "cookielib", 
    "requests", 
    "simplejson", 
) 
+0

Я хочу, чтобы SakaiPy был родительским модулем с доступным там RequestGenerator и всеми инструментами, доступными под SakaiTools. Поэтому я могу сказать, что от SakaiPy import RequestGenerator или от SakaiPy импортирует SakaiTools. – Zeratas

+1

@Sempus Я исправил ответ, чтобы соответствовать тому, что вы на самом деле ищете –

+0

Черт, похоже, не может заставить его работать. Не могли бы вы посмотреть @ репо для меня? Я изменил структуру директории на то, что я хочу. – Zeratas

Смежные вопросы