turicreate Windows (wsl ubuntu) не может открыть файл csv для чтения

#python #jupyter-notebook #turi-create

#python #jupyter-ноутбук #turi-создать

Вопрос:

Я установил версию wsl Ubuntu 20.04 LTS в Windows для использования turicreate. но у меня возникли некоторые проблемы с использованием файла csv, я переместил его из своей папки загрузки в /home/ user, где находится папка venv. в первой строке я !pip устанавливаю turicreate и выполняю требование, которое уже выполнено, затем импортировал turicreate и запустил

 sf = turicreate.SFrame(r'people-example.csv')
  

и получил вывод

 OSError                                   Traceback (most recent call last)
~/MLvenv/lib/python3.8/site-packages/turicreate/data_structures/sframe.py in _read_csv_impl(cls, url, delimiter, header, error_bad_lines, comment_char, escape_char, double_quote, quote_char, skip_initial_space, column_type_hints, na_values, line_terminator, usecols, nrows, skiprows, verbose, store_errors, nrows_to_infer, true_values, false_values, _only_raw_string_substitutions, **kwargs)
   1093             with cython_context():
-> 1094                 errors = proxy.load_from_csvs(internal_url, parsing_config, type_hints)
   1095         except Exception as e:

cy_sframe.pyx in turicreate._cython.cy_sframe.UnitySFrameProxy.load_from_csvs()

cy_sframe.pyx in turicreate._cython.cy_sframe.UnitySFrameProxy.load_from_csvs()

OSError: Cannot open /home/anagene/people-example.csv for read. Cannot open /home/anagene/people-example.csv for reading

During handling of the above exception, another exception occurred:

OSError                                   Traceback (most recent call last)
~/MLvenv/lib/python3.8/site-packages/turicreate/data_structures/sframe.py in __init__(self, data, format, _proxy)
    825                     url = data
--> 826                     tmpsf = SFrame.read_csv(url, delimiter=",", header=True)
    827                     self.__proxy__ = tmpsf.__proxy__

~/MLvenv/lib/python3.8/site-packages/turicreate/data_structures/sframe.py in read_csv(cls, url, delimiter, header, error_bad_lines, comment_char, escape_char, double_quote, quote_char, skip_initial_space, column_type_hints, na_values, line_terminator, usecols, nrows, skiprows, verbose, nrows_to_infer, true_values, false_values, _only_raw_string_substitutions, **kwargs)
   1555 
-> 1556         return cls._read_csv_impl(
   1557             url,

~/MLvenv/lib/python3.8/site-packages/turicreate/data_structures/sframe.py in _read_csv_impl(cls, url, delimiter, header, error_bad_lines, comment_char, escape_char, double_quote, quote_char, skip_initial_space, column_type_hints, na_values, line_terminator, usecols, nrows, skiprows, verbose, store_errors, nrows_to_infer, true_values, false_values, _only_raw_string_substitutions, **kwargs)
    985                 # Get the first nrows_to_infer rows (using all the desired arguments).
--> 986                 first_rows = SFrame.read_csv(
    987                     url,

~/MLvenv/lib/python3.8/site-packages/turicreate/data_structures/sframe.py in read_csv(cls, url, delimiter, header, error_bad_lines, comment_char, escape_char, double_quote, quote_char, skip_initial_space, column_type_hints, na_values, line_terminator, usecols, nrows, skiprows, verbose, nrows_to_infer, true_values, false_values, _only_raw_string_substitutions, **kwargs)
   1555 
-> 1556         return cls._read_csv_impl(
   1557             url,

~/MLvenv/lib/python3.8/site-packages/turicreate/data_structures/sframe.py in _read_csv_impl(cls, url, delimiter, header, error_bad_lines, comment_char, escape_char, double_quote, quote_char, skip_initial_space, column_type_hints, na_values, line_terminator, usecols, nrows, skiprows, verbose, store_errors, nrows_to_infer, true_values, false_values, _only_raw_string_substitutions, **kwargs)
   1093             with cython_context():
-> 1094                 errors = proxy.load_from_csvs(internal_url, parsing_config, type_hints)
   1095         except Exception as e:

~/MLvenv/lib/python3.8/site-packages/turicreate/_cython/context.py in __exit__(self, exc_type, exc_value, traceback)
     49                 # To hide cython trace, we re-raise from here
---> 50                 raise exc_type(exc_value)
     51             else:

OSError: Cannot open /home/anagene/people-example.csv for read. Cannot open /home/anagene/people-example.csv for reading

During handling of the above exception, another exception occurred:

OSError                                   Traceback (most recent call last)
<ipython-input-8-d54163f18f67> in <module>
----> 1 sf = turicreate.SFrame(r'people-example.csv')

~/MLvenv/lib/python3.8/site-packages/turicreate/data_structures/sframe.py in __init__(self, data, format, _proxy)
    836                     pass
    837                 else:
--> 838                     raise ValueError("Unknown input type: "   format)
    839 
    840     @staticmethod

~/MLvenv/lib/python3.8/site-packages/turicreate/_cython/context.py in __exit__(self, exc_type, exc_value, traceback)
     48             if not self.show_cython_trace:
     49                 # To hide cython trace, we re-raise from here
---> 50                 raise exc_type(exc_value)
     51             else:
     52                 # To show the full trace, we do nothing and let exception propagate

OSError: Cannot open /home/anagene/people-example.csv for read. Cannot open /home/anagene/people-example.csv for reading
  

Ответ №1:

Возникла точно такая же проблема, решаемая путем предоставления доступа к файлам всем, выполнив следующий код в ubuntu: sudo chmod a rwx /home/anagene/people-example.csv, где последняя часть — путь к файлу.

Изменил имя файла a / c для вашего запроса, чтобы вы могли напрямую использовать приведенный выше код.