我刚刚创建了一个Python包(sources here),但在安装后使用它有问题。一个简单的导入给我一个ImportError
。在
下面我将详细展示我所做的,以便您可以复制:
$ git clone git@github.com:kramer65/peewee-versioned.git
Cloning into 'peewee-versioned'
etc. etc.
Checking connectivity... done.
$ virtualenv venv
New python executable in the/path/to/my/venv/bin/python
Installing setuptools, pip, wheel...done.
$ . venv/bin/activate
(venv) $ cd peewee-versioned/
(venv) $ python setup.py install
running install
etc. etc. everything installs without errors
Finished processing dependencies for peewee-versioned==0.1
(venv) $ cd ..
(venv) $ pip freeze
peewee==2.8.0
peewee-versioned==0.1 # AS YOU CAN SEE IT IS INSTALLED
six==1.10.0
(venv) $ python
Python 2.7.10 (default, Oct 23 2015, 18:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import peewee
>>> import peewee_versioned
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named peewee_versioned
我的设置.py看起来像这样:
^{pr2}$项目中唯一相关的文件是versioned.py(参见full sources here)
有人知道我做错了什么吗?欢迎所有提示!在
[编辑]
我检查了venv站点包中是否有与我的包相关的鸡蛋,并且有(检查第5个包):
$ ls -l venv/lib/python2.7/site-packages/
total 512
-rw-r--r-- 1 kramer65 staff 276 13 apr 13:53 easy-install.pth
-rw-r--r-- 1 kramer65 staff 126 13 apr 13:53 easy_install.py
-rw-r--r-- 1 kramer65 staff 367 13 apr 13:53 easy_install.pyc
-rw-r--r-- 1 kramer65 staff 242923 13 apr 13:53 peewee-2.8.0-py2.7.egg
-rw-r--r-- 1 kramer65 staff 970 13 apr 13:53 peewee_versioned-0.1-py2.7.egg
drwxr-xr-x 34 kramer65 staff 1156 13 apr 13:53 pip
drwxr-xr-x 10 kramer65 staff 340 13 apr 13:53 pip-8.1.1.dist-info
drwxr-xr-x 6 kramer65 staff 204 13 apr 13:53 pkg_resources
drwxr-xr-x 52 kramer65 staff 1768 13 apr 13:53 setuptools
drwxr-xr-x 12 kramer65 staff 408 13 apr 13:53 setuptools-20.7.0.dist-info
drwxr-xr-x 5 kramer65 staff 170 13 apr 13:53 six-1.10.0-py2.7.egg
drwxr-xr-x 32 kramer65 staff 1088 13 apr 13:53 wheel
drwxr-xr-x 11 kramer65 staff 374 13 apr 13:53 wheel-0.29.0.dist-info
为什么我不能进口?在
我认为您必须单独包含版本化模块,因为您没有包。我不认为find_包方法会找到solo模块。在
尝试将py_modules=['versioned']添加到安装程序中,如下所示:
在此之后,您应该能够导入版本化的。在
如果只需要名称,可以使用“import as”功能:
由于存储库中没有任何包,只有一个名为
versioned.py
的文件,因此在运行python setup.py install
之后,您应该能够将其作为import versioned
导入。为我工作:总之,既然您希望它从
peewee_versioned
导入,我将在这里做两件事:versioned.py
重命名为peewee_versioned.py
遵循Listing individual modules文档段落,使用
^{2美元py_modules
:相关问题 更多 >
编程相关推荐