Astropy не может загружать файлы после смены имени пользователя

Я изменил свое имя пользователя, следуя этой теме: Как мне изменить свое имя пользователя?

Это было несколько недель назад, и я только что столкнулся с моей первой проблемой, Astropy (для python). 2.7) возникают проблемы при загрузке файлов, потому что он ищет в неправильной папке кэша. Сообщение об ошибке: IOError: [Errno 2] Нет такого файла или каталога: u '/ home / jill / .astropy / cache / download / py2 / bf6211066f3d9a9b058d46183baba6ab'. (мое старое имя пользователя было jill, и я вижу, что этот файл существует в моей новой домашней папке).

После отладки построчно создается впечатление, что ошибка исходит от модуля «Полка». Например, именно здесь / home / jill впервые вводится в URL.

Я попытался переустановить python (sudo apt-get install --reinstall python2.7) и переустановить astropy (pip2 uninstall astropy, pip2 install astropy).

* Полное сообщение об ошибке на Pycharm:

File "/home/jpsotka/Dropbox/Colibri/Simulation/corrections.py", line 74, in get_zenith
    elginfield_altaz = ecliptic(lat=elat*u.degree, lon=elon*u.degree).transform_to(AltAz(obstime=time, location=elginfield))

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/coordinates/baseframe.py", line 934, in transform_to
    return trans(self, new_frame)

File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/coordinates/transformations.py", line 1314, in __call__
    curr_coord = t(curr_coord, curr_toframe)

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/coordinates/transformations.py", line 914, in __call__
    return supcall(fromcoord, toframe)

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/coordinates/builtin_frames/cirs_observed_transforms.py", line 53, in cirs_to_altaz
    xp, yp = get_polar_motion(obstime)

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/coordinates/builtin_frames/utils.py", line 43, in get_polar_motion
    xp, yp, status = iers.IERS_Auto.open().pm_xy(time, return_status=True)

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/utils/iers/iers.py", line 600, in open
    cls.iers_table = cls.read(file=filename)

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/utils/iers/iers.py", line 456, in read
    iers_a = Table.read(file, format='cds', readme=readme)

  File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/table/table.py", line 2521, in read
    out = io_registry.read(cls, *args, **kwargs)

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/io/registry.py", line 531, in read
    data = reader(*args, **kwargs)

 File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/io/ascii/connect.py", line 39, in io_read
    return read(filename, format=format, **kwargs)

File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/io/ascii/ui.py", line 353, in read
    dat = reader.read(table)

File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/io/ascii/cds.py", line 322, in read
    return super(Cds, self).read(table)

File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/io/ascii/core.py", line 1159, in read
    self.lines = self.inputter.get_lines(table)

File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/io/ascii/core.py", line 296, in get_lines
    encoding=self.encoding) as fileobj:

File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()

  File "/home/jpsotka/.local/lib/python2.7/site-packages/astropy/utils/data.py", line 206, in get_readable_fileobj
    fileobj = open(name_or_obj, 'rb')

IOError: [Errno 2] No such file or directory: u'/home/jill/.astropy/cache/download/py2/bf6211066f3d9a9b058d46183baba6ab'

Process finished with exit code 1
2
задан 16 July 2019 в 17:02

2 ответа

При использовании astropy 1.0.10 или позже это должно очистить кэш без проблемы:

#! /usr/bin/env python
from astropy.utils import data
data.clear_download_cache()

Ссылка на документацию:

astropy.utils.data.clear_download_cache(hashorurl=None)

[источник]

Очищает кэш файла данных путем удаления локального файла (файлов).

Параметры: hashorurl: ул. или Ни один

Если Ни один, целый кэш очищен. Иначе, или указывает хеш для кэшируемого файла, который, как предполагается, удален, или URL, который должен быть удален из кэша если существующий.

https://docs.astropy.org/en/stable/api/astropy.utils.data.clear_download_cache.html

Свяжитесь со связанной ошибкой и вытяните запрос:

https://github.com/astropy/astropy/issues/4427

https://github.com/astropy/astropy/pull/4810

1
ответ дан 2 December 2019 в 03:27

Я не знаю ни о каком способе полностью избежать этого, т.е. заставить Python пропустить несуществующий кэш. Однако существует один простой способ получить Ваши программы, работающие снова, и это должно заставить его появиться, что существует кэш (или безотносительно ресурса) в /home/jill папка. Вы делаете это путем создания названной символьной ссылки /home/jill к (реальному) /home/jpsotka:

sudo ln -s /home/jpsotka /home/jill

Это все. Конечно, если существует другой пользователь jill в системе, каталоге /home/jill будет уже существовать, и таким образом, ссылка не может быть создана.

Я предполагаю, что через некоторое время, файлы в кэше будут полностью заменены, и можно удалить ссылку:

sudo rm /home/jill 

Заметьте, что это не удаляет папку, на которую ссылка указывает на, просто сама ссылка.

1
ответ дан 2 December 2019 в 03:27

Другие вопросы по тегам:

Похожие вопросы: