У меня есть приложение на Python, которое имеет зависимость от панд.Приложение хорошо работает на полной системе Ubuntu 18.Но для Ubuntu, установленного на virtualbox, приложение сталкивается с ошибкой (приведенной ниже).
Traceback (most recent call last):
File "/media/sf_UbuntuShare/phase-Extender-master/phase-Extender.py", line 1834, in
main()
File "/media/sf_UbuntuShare/phase-Extender-master/phase-Extender.py", line 536, in main
sep='\t', index=False, header=True)
File "/usr/local/lib/python3.5/dist-packages/pandas/core/frame.py", line 1524, in to_csv
formatter.save()
File "/usr/local/lib/python3.5/dist-packages/pandas/io/formats/format.py", line 1637, in save
compression=self.compression)
File "/usr/local/lib/python3.5/dist-packages/pandas/io/common.py", line 390, in _get_handle
f = open(path_or_buf, mode, encoding=encoding)
OSError: [Errno 71] Protocol error: 'chunked_Data_NA12889/NA12889:20'
Что я в основном делаю, так это разбиваю большой кадр данных панд на блоки после группировки. Вот код процесса:
import pandas as pd
# assign value to "soi" variable
soi = "some user defined string value"
# read a textfile into pandas
pd.read_table(some_data, delimiter='\t')
# group a pandas dataframe by a unique value of a column
good_data_by_group = good_data.groupby('CHROM', sort=False)
# create a folder to store the data
if os.path.exists('chunked_Data_' + soi):
shutil.rmtree('chunked_Data_' + soi, ignore_errors=False, onerror=None)
os.makedirs('chunked_Data_' + soi + '/', exist_ok=True)
# now split the pandas dataframe into chunks
for chr_, data_by_chr in good_data_by_group:
pd.DataFrame.to_csv(data_by_chr, 'chunked_Data_' + soi + '/' + soi + ':' + str(chr_),
sep='\t', index=False, header=True)
Фактическая строка кода, возвращающая ошибку:
pd.DataFrame.to_csv(data_by_chr, 'chunked_Data_' + soi + '/' + soi + ':' + str(chr_), sep='\t', index=False, header=True)`
Что здесь на самом деле не так?
Код работает на моей полной фазе Ubuntu 18. Но на самом деле не работает в Ubuntu с виртуальной коробкой.Я думаю, что это больше проблема совместимости, чем проблема кода.Но есть ли способ, которым я могу изменить код, чтобы приложение работало во всех системах Ubuntu, независимо от того, имеют ли они sudo превалирующие или нет, будь то полнофункциональная Ubuntu или виртуальная коробка, виртуальная среда.