Как скрыть или сделать относительные пути, которые появляются в файлах внутри папки conda-meta? - PullRequest
0 голосов
/ 29 марта 2019

При построении среды conda, подобной этой

conda create --prefix env python=3.6.5

В некоторых файлах json в папке conda-meta появляются некоторые абсолютные пути.Как я могу избежать этого?Я просто хочу использовать относительные пути здесь или просто хочу полностью их скрыть.Есть ли способ добиться этого?Они обязательны?См. Атрибуты extracted_package_dir, source или package_tarball_full_path:

{
"arch": "x86_64",
"build": "py36_0",
"build_number": 0,
"channel": "https://repo.anaconda.com/pkgs/main/win-64",
"constrains": [],
"depends": [
    "python >=3.6,<3.7.0a0"
],
"extracted_package_dir": "C:\\Users\\UserName\\AppData\\Local\\conda\\conda\\pkgs\\certifi-2019.3.9-py36_0",
"features": "",
"files": [
    "Lib/site-packages/certifi-2019.03.09-py3.6.egg-info",
    "Lib/site-packages/certifi/__init__.py",
    "Lib/site-packages/certifi/__main__.py",
    "Lib/site-packages/certifi/__pycache__/__init__.cpython-36.pyc",
    "Lib/site-packages/certifi/__pycache__/__main__.cpython-36.pyc",
    "Lib/site-packages/certifi/__pycache__/core.cpython-36.pyc",
    "Lib/site-packages/certifi/cacert.pem",
    "Lib/site-packages/certifi/core.py"
],
"fn": "certifi-2019.3.9-py36_0.tar.bz2",
"license": "ISC",
"link": {
    "source": "C:\\Users\\UserName\\AppData\\Local\\conda\\conda\\pkgs\\certifi-2019.3.9-py36_0",
    "type": 1
},
"md5": "e1faa30cf88c0cd141dfe71e70a9597a",
"name": "certifi",
"package_tarball_full_path": "C:\\Users\\UserName\\AppData\\Local\\conda\\conda\\pkgs\\certifi-2019.3.9-py36_0.tar.bz2",
"paths_data": {
    "paths": [

[...]

Если я удаляю всю папку, среда становится бесполезной, и я больше не могу активировать ее для установки, обновления или удаления новых пакетов.

Я хочу сделать это для инкапсуляции среды в одном приложении, и я не хочу, чтобы мои исходные абсолютные пути были на компьютере конечного пользователя.

Мой вариант использования

Я разрабатываю электронное приложение, которое использует сервер торнадо (который использует python)

В настоящее время я использую electron-builder для добавления среды в установщик и работает довольно хорошо, ноодин недостаток - папка conda-meta, которую я прокомментировал выше.Теперь я хочу удалить его вручную, когда я хочу сделать установщик.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Наконец, лучшим решением, которое я нашел, было игнорирование папки при создании окончательного установщика с electron-builder.

. Поэтому я применил директиву extraResources для добавления среды conda.кроме папки conda-meta.И я добавил фильтр "!conda-meta${/*}", значение которого объяснено здесь

Помните, что !doNotCopyMe/**/* будет соответствовать файлам в каталоге doNotCopyMe, но не в каталогесам, поэтому будет создан пустой каталог.Решение - используйте макрос ${/*}, например !doNotCopyMe${/*}.

Результат в файле package.json:

"extraResources": [
    {
        "from": "../env",
        "to": "env",
        "filter": [
            "**/*",
            "!*.pyc",
            "!conda-meta${/*}"
        ]
    }
],
0 голосов
/ 30 марта 2019

Это, вероятно, сломает Conda. Это не написано, чтобы относиться к ним как к относительным путям. Если бы вы рассказали нам больше о вашем случае использования, возможно, мы могли бы помочь. Вы пытаетесь перераспределить установленную среду? Вы видели проекты "constructor" или "conda-pack"?

...