簡體   English   中英

導入TextBlob時出錯

[英]Error from importing TextBlob

在Laravel項目中運行Python腳本時遇到問題。 使用virtualenv運行python腳本時,沒有出現此問題。 我正在使用Win 10 64位。

使用Symfony / Process在Laravel中運行python腳本時,出現此錯誤:

"""
The command "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\env\Scripts\activate && py C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\main.py" failed.\n ◀
\n
Exit Code: 1(General error)\n
\n
Working directory: C:\xampp\htdocs\projects\laravel-project\public\n
\n
Output:\n
================\n
\n
\n
Error Output:\n
================\n
Traceback (most recent call last):\r\n
  File "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\main.py", line 10, in <module>\r\n
    from textblob import TextBlob\r\n
  File "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\env\lib\site-packages\textblob\__init__.py", line 2, in <module>\r\n ◀
    from .blob import TextBlob, Word, Sentence, Blobber, WordList\r\n
  File "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\env\lib\site-packages\textblob\blob.py", line 28, in <module>\r\n
    import nltk\r\n
  File "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\env\lib\site-packages\nltk\__init__.py", line 160, in <module>\r\n
    from nltk.downloader import download, download_shell\r\n
  File "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\env\lib\site-packages\nltk\downloader.py", line 2237, in <module>\r\n ◀
    _downloader = Downloader()\r\n
  File "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\env\lib\site-packages\nltk\downloader.py", line 443, in __init__\r\n ◀
    self._download_dir = self.default_download_dir()\r\n
  File "C:\xampp\htdocs\projects\laravel-project\scripts\sentiment\env\lib\site-packages\nltk\downloader.py", line 954, in default_download_dir\r\n ◀
    raise ValueError("Could not find a default download directory")\r\n
ValueError: Could not find a default download directory\r\n
"""

據我了解,nltk是一個textblob依賴項,但是nltk / downloader.py在default_download_dir處返回false(但是當我在python shell中測試if條件時,它應該為true):

    # On Windows, use %APPDATA%
    if sys.platform == 'win32' and 'APPDATA' in os.environ:
        homedir = os.environ['APPDATA']

    # Otherwise, install in the user's home directory.
    else:
        homedir = os.path.expanduser('~/')
        if homedir == '~/':
            raise ValueError("Could not find a default download directory")

這就是在我的main.py上聲明textblob的方式

from textblob import TextBlob

除了這個特定的軟件包,我的其他導入都沒有任何問題。 我目前處於障礙之中,因此我們將不勝感激。

我從這篇文章中得到了答案: ValueError:找不到nltk的默認下載目錄

我所做的是在py腳本中初始化NLTK_DATA環境變量。 這樣就解決了問題。

import os

os.environ['NLTK_DATA'] = os.path.abspath('../scripts/nltk_data')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM