【问题标题】:package installed through pip3, does not create symlink automatically on Mac通过 pip3 安装的软件包,在 Mac 上不会自动创建符号链接
【发布时间】:2019-09-24 17:01:29
【问题描述】:

示例

MacOS10.14.6

>>pip3 install qrcode
...
>>qr "abc" > test.png #Create a QRcode
command not found: qr
>>command -v qr ; echo $?
1

在 CentOS7 上

>>pip3 install qrcode
...
>>command -v qr ; echo $?
/usr/local/bin/qr
0

CentOS 中的 qr 文件:

#!/usr/local/bin/python3.7
# -*- coding: utf-8 -*-
import re
import sys

from qrcode.console_scripts import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

如果我把'qr'放在MacOS的/usr/local/bin中,命令qr "abc" > test.png将在MacOS上成功运行。

问:

为什么它不自动在 MacOS 中创建“qr”?
我怎么能做到?

【问题讨论】:

  • 我不确定您是否必须自己进行符号链接,最好将包含 qrcode 的目录添加到您的路径中
  • 我不确定我是否理解你的问题的前提。如果我使用 pip 在我的 Mac 上安装 Python 模块,我不会期望它会更改我可能从 bash 运行的任何东西的 PATH。
  • @MarkSetchell 它不会改变路径。安装 python 模块后,我只需要它在我的 PATH 中自动创建一个可执行文件。
  • @MCO qrcode 没有bash 的可执行文件。所以我仍然需要在我的 PATH 中创建一个“qr”文件。它会在 CentOS 中自动创建“qr”文件到 PATH,但它不会在我的 Mac 上。

标签: python macos pip centos symlink


【解决方案1】:

您的问题的一个最佳解决方案是使用 virtualenv

pip install virtualenv
virtualenv ENV
source /path/to/ENV/bin/activate

然后在这个虚拟环境中安装 qrcode

pip3 install Image
pip3 install qrcode

鉴于您在虚拟环境中,您应该能够从终端使用 qr 命令。

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 2018-09-14
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多