对于一个看似简单的问题,我很抱歉,我不熟悉在Python中使用类。
我使用的是Pycharm,文件夹结构如下所示:

文件夹constant-contact-python-wrapper有几个在__init.py__和restful_lib.py下定义的类(我从github获得了这个库)。我想在包含在Trial.py文件夹中的文件ConstantContact中使用这些类。我使用以下代码,但它无法导入该类。
import sys
sys.path.append('C:\\Users\\psinghal\\PycharmProjects\\ConstantContact\\constant-contact-python-wrapper')
import constant-contact-python-wrapper
API_KEY = "KEY" #not a valid key
mConnection = CTCTConnection(API_KEY, "joe", "password123")有人能帮我指出正确的方向吗?
发布于 2015-01-02 20:25:28
您试图纠正的部分问题是,您有两个库在同一个范围内,尽管它们看起来并不一定是必需的。
最简单的解决方案是简单地将常量-contact-python包装器放在ConstantContact文件夹下的一个新文件夹下,用于导入您自己没有编写的代码。通过这种方式,您的项目是为此实例组织的,也是为您从另一个库导入代码的未来实例组织的。
理想情况下,文件夹结构应该是:
ConstantContact
|___ ConstantContact
|____ExternalLibraries #(or some name similar if you plan on using different libraries)
|___constant-contact-python-wrapper使用上面的模型,您现在有了一个有组织的层次结构,以便很容易地适应导入的代码。
为了方便导入,您还需要设置以下内容:
1.在init.py文件中创建ExternalLibraries。内容如下:
from constant-contact-python-wrapper import #The class or function you want to use这将为导入提供便利,并可对您选择使用的未来库进行扩展。
然后,可以在编写在ConstantContact文件夹中的代码中使用导入语句:
from ExternalLibraries import #The class or function you chose above如果要导入多个类,则可以在导入语句中用逗号分隔它们。例如:
from Example import foo,bar,baz由于init.py文件是直接导入所有函数/类的,所以现在可以使用它们,而不必使用点语法(即。library.func)。
资料来源和进一步阅读:
"all and import *“ in Python?
“Project骨架”http://learnpythonthehardway.org/book/ex46.html
“模块”http://docs.python-guide.org/en/latest/writing/structure/#modules
发布于 2015-01-02 18:54:02
constant-contact-python-wrapper和ConstantContact是与python无关的包。在与__init__.py相同的目录中创建一个manage.py,它应该可以像预期的那样工作。
https://stackoverflow.com/questions/27746901
复制相似问题