Python和virtualenv的新手,所以我确定这是一个noob问题,但在安装我创建的virtualenv文件夹模块时会遇到一个奇怪的问题。
我模块的目录如下所示:
VideoUploader/
VideoUploader/
videouploader.py #main script
__init__.py
bin/
userinfo.py #this is called by the setup.py file to get info from user via the command line during install
__init__.py
docs/
setup.py
tests/
videouploader_tests.py
__init__.py
这是我的setup.py代码:
import json
import os
import sys
sys.path.insert(0, './bin')
import userinfo
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
config = {'description': 'VideoUploader',
'author': '',
'url': '',
'download_url': '',
'author_email': 'alegion@gmail.com',
'version': '0.1',
'install_requires': ['nose','feedparser','requests','peewee'],
'packages': [],
'scripts': ['bin/userinfo.py'],
'name': 'VideoUploader'
}
setup(**config)
我的virtualenv目录如下所示:
NewProject/
venv/
bin/
include/
library/
我不清楚在哪里删除我的模块目录,以便我可以在这个虚拟环境中安装它。
我已尝试将其移至venv
文件夹,然后cd进入VideoUploader
文件夹并运行python setup.py install
- 但这是放置模块文件夹的正确位置吗?
之后,在此目录中,我打开Python解释器并尝试导入VideoUploader
。一切似乎都很好,但是当我尝试在模块中导入一个方法(在videouploader.py
文件中)时,就像foo = VideoUploader.assignurl()
一样,一切都按预期工作。但仅限于模块文件夹VideoUploader
内,所以很明显它没有正确安装。我在这做错了什么?
答案 0 :(得分:1)
通常,您可以从任何目录运行setup.py install
,无需将其放入venv目录中。文件将自动复制到正确的位置。关于模块导入的错误,你确定你激活了virtualenv(运行source venv/bin/activate
)你应该在安装之前这样做。