【问题标题】:How to make python update module install dir after moving folder?移动文件夹后如何使python更新模块安装目录?
【发布时间】:2017-10-15 04:49:07
【问题描述】:

我从 GitHub 安装了一个 Python 模块。这是我运行的命令示例:

cd ~/modules/
git clone https://github.com/user/xyz
cd xyz
python setup.py develop

这将模块成功安装在当前文件夹中。然后从其他文件夹中,我做到了:

cd ~/test
python -c 'import inspect; import xyz; print(inspect.getfile(xyz))'

wich 给出了以下输出:

/home/hakon/modules/xyz/xyz/__init__.py

现在,我决定要移动安装文件夹。例如,

cd ~/modules/xyz
mv xyz xyz2

但是现在 Python 再也找不到这个模块了。例如:

cd ~/test
python -c 'import inspect; import xyz; print(inspect.getfile(xyz))'

有输出:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'xyz'

问题:

  • Python 在哪里注册模块的位置?
  • 如何将注册表更新到模块的新位置?

【问题讨论】:

标签: python


【解决方案1】:

根据documentation设置工具develop命令:

develop 命令通过创建一个.egg-link 文件(以 项目)在给定的暂存区域。如果暂存区是 Python 的 site-packages 目录,它还会更新一个easy-install.pth 文件,所以 对于使用运行的所有程序,该项目默认位于sys.path 那个 Python 安装。

因此,要在移动项目文件夹后回答更新位置的问题,您可以重新运行develop 命令(从新文件夹中):

python setup.py develop

注意:您也可以在移动项目之前取消注册:

python setup.py develop --unistall

但如果您只想更新位置,则无需这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多