首页 > 解决方案 > 如何创建可重定位的 Conda 环境?可行吗?

问题描述

我想做一个可重定位的环境。所以我需要在包安装中使用相对路径。为此,我只需创建一个这样的 Conda 环境:

conda create --prefix env python=3.6.5
activate .\env

然后我像往常一样安装了所需的软件包

pip install package_name

当我想安装自己的软件包时,问题就来了。我已经创建了一个这样的结构,并且我遵循了本教程

some_root_dir/
|-- setup.py
|-- python_files
|-- |-- runall.py
|-- |-- test0.py

的内容setup.py是这样的:

from setuptools import setup

setup(
    name='my_app',
    version='0.1',
    description='My app',
    keywords="app csv some other word",
    url='https://www.my_domain.com/',
    author='My name',
    author_email='email@email_domain.com',
    license='MIT',
    packages=['my_package'],
    zip_safe=False,
)

但安装后:

cd some_root_dir
pip install .

并将其移动到另一个位置,应用程序中出现的路径就是我所做的路径pip install .

我一直在这里寻找信息,但没有找到任何有用的信息。

我想做的主要步骤

  1. 创建一个conda环境,用pip或者conda安装一些包,包括我自己的python包
  2. 将环境文件夹复制到另一台计算机
  3. 在这台未安装 conda 和 python 的计算机上运行应用程序。如果我使用python.exe包含在文件夹中的 python 应该知道包的安装位置以及如何导入它们。

问题

注意:我使用的是 Windows 10 和 Miniconda 3。

虚拟环境

virtualenv 上的等价物是这样的:

virtualenv --relocatable env_folder

但这是一个实验性功能

更新(2018 年 8 月 7 日)

实际上我想要的是@interfect 在他的评论中所说的,问题就在这里。因此 conda 上的可重定位环境尚不可能

标签: pythonpipvirtualenvsetuptoolsconda

解决方案


如果你把你的包变成一个 conda 包(如果你已经在使用 pip,这很简单),你只需在新机器上 conda 安装你的包,所有的东西都将在安装时重新定位。

这包括任何已编译的库,更不用说脚本中的路径了。Conda 将修改所有内容,因此无论您将其安装在何处,它都能正常工作。


推荐阅读