获取错误,但已安装包

时间:2017-01-12 14:29:29

标签: python django

enter image description here我正在尝试在系统上设置一个小报告系统,以允许管理员以Csv文档的形式生成报告。

我发现安装了Django-import-export它改变了我的INSTALLED_APPS,一切正常。如果没有模块名称import-export我猜测将它放入INSTALLED_APPS会在这之前给我一个错误所以我不明白为什么我得到这个错误。

就像documnetation建议我正在添加

from import_export import resources

进入admin.py但每次都出错

Traceback (most recent call last):
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 229, in wrapper
    fn(*args, **kwargs)
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 107, in inner_run
    autoreload.raise_last_exception()
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 252, in raise_last_exception
    six.reraise(*_exception)
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 229, in wrapper
    fn(*args, **kwargs)
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 115, in populate
    app_config.ready()
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/contrib/admin/apps.py", line 22, in ready
    self.module.autodiscover()
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 24, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "/home/vagrant/env/local/lib/python2.7/site-packages/django/utils/module_loading.py", line 74, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/vagrant/twm/component/admin.py", line 11, in <module>
    from import_export import *
ImportError: No module named import_export**strong text**

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如上所述,在我看来,安装包不是一个好主意。 你可以考虑在你的流浪汉中使用virtualenv。这很可能会解决您的问题。

1)将您当前的要求写入文件

使用virtualenv时,我们可能需要与您相同的包 现在有。通过键入pip freeze > requirements.txt(在项目根目录中)将当前需求写入名为requirements.txt的文件

2)编辑您的Vagrantfile

之后打开您的Vagrant文​​件

config.vm.box = "<yourbox>"

添加

config.vm.provision :shell, path: "install.sh"

我们将在下一步创建install.sh。每次执行vagrant up命令时都将执行此安装脚本。

3)创建install.sh文件

echo "--- Installing Virtual env ---"
mkdir /virtualenv &>/dev/null
virtualenv /virtualenv &>/dev/null
source /virtualenv/bin/activate &>/dev/null

chown vagrant:vagrant /virtualenv -R &>/dev/null

echo "--- Installing PIP ---"
wget https://bootstrap.pypa.io/get-pip.py &>/dev/null
python get-pip.py &>/dev/null
rm get-pip.py &>/dev/null

echo "--- Installing Django dependencies ---"
pip install -r requirements.txt &>/dev/null

4)摧毁你的流浪者

摧毁当前的流浪者会让你失去你在流浪者身上做出的任何调整(而不是在你的档案中)。您可以对install.sh添加任何调整,以便在vagrant up上进行配置。如果您确定准备好摧毁您的流浪汉,请键入vagrant destroy,然后键入vagrant up

当你增加流浪者时,你会在提示前面看到(virtualenv)。包装加载和安装现在将在virtualenv中完成。