Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果使用-t选项,PIP如何知道Python是32位还是64位?_Python_Pip - Fatal编程技术网

如果使用-t选项,PIP如何知道Python是32位还是64位?

如果使用-t选项,PIP如何知道Python是32位还是64位?,python,pip,Python,Pip,您可以使用一个标志(pip安装--Python版本3.6…)指定Python版本,但是您似乎无法指定要安装的模块是32位还是64位。我有一些理论,但在这一点上我不清楚它的行为 更具体地说,我想使用PIP.exe在嵌入式Python区域(没有自己的PIP.exe)中安装一个模块,并使用-t标志指定位置 更新:情况似乎是32位Pip安装在32位Python上,而64位Pip安装在64位Python上 可以使用标志指定Python版本 你不能。选项-t用于pip安装设置目标目录,而不是Python版本

您可以使用一个标志(pip安装--Python版本3.6…)指定Python版本,但是您似乎无法指定要安装的模块是32位还是64位。我有一些理论,但在这一点上我不清楚它的行为

更具体地说,我想使用PIP.exe在嵌入式Python区域(没有自己的PIP.exe)中安装一个模块,并使用-t标志指定位置

更新:情况似乎是32位Pip安装在32位Python上,而64位Pip安装在64位Python上

可以使用标志指定Python版本

你不能。选项
-t
用于
pip安装
设置目标目录,而不是Python版本

但您似乎无法指定是要安装32位还是64位的模块

pip
是一个Python脚本,它在Python解释器下运行,解释器当然知道它是32位还是64位

更具体地说,我想使用PIP.exe在嵌入式Python区域中安装一个模块


您可以下载不同(当前Python/pip)硬件平台、操作系统和Python版本的软件包,但不能安装它们。要安装软件包,您必须具有兼容的
pip
。因此,第一件事是为所述嵌入式Python安装
pip

如果您正在尝试使用本地
pip
从PyPI中提取一个包,并将其转储到类似于CircuitPython设备的文件夹中,您可以尝试以下操作:

pip install \
      --no-compile \
      --target /your/path \
      --python-version=3.5 \
      --implementation=py \
      --no-binary=:all: \
      --no-deps \
      adafruit-circuitpython-bmp280
这将把源(模块或包)转储到
/your/path
中。
--python版本
只使用包中的标记,实际上不检查源代码
--implementation=py
将强制它使用纯python包


较旧的答案,但对某些上下文有用

可以使用标志指定Python版本

你能澄清一下吗?你是说运行类似于
python3.5
python3.8
的东西吗?这是Python二进制文件的名称

您也可能正在使用Windows,在这里可以在shebang行中找到可执行文件。该行由
py
处理


为了消除混淆,我们不运行
pip安装…
,而是运行
python-m pip安装…
。然后,您可以确定
pip
python
用于相同的安装(版本、虚拟环境等)

例如,如果我安装了Python2.7、Python3.5和Python3.8,我的路径上可能会有以下“明确的”二进制文件

  • python2
  • python2.7
  • python3.5
  • python3.8
然而,也有

  • python
  • python3
  • pip
  • pip3
这些东西的实际意义是任何人的猜测,可能取决于安装顺序、安装方式和任何手动路径操作。在某些设置中,
pip
可能安装到(例如)Python 3.5版本,而
Python
是Python 2.7。如果是这种情况,如果运行
pip安装请求
,那么
python-c“导入请求”
将失败


如果您在Windows上,运行
py-3.7-32 myscript.py
将使用32位版本的Python 3.7(如果存在)运行脚本。如果您需要为它安装软件包,请使用
py-3.7-32-m pip install…
来确保它是为它安装的,而不是
pip install…
,谁知道它会去哪里。

您的可执行文件/环境变量中有这两个版本吗?我认为这比你用pip加上的任何论点都重要-t仅仅给出了您想要安装它的目录?您能澄清一下“嵌入式Python区域”是什么吗?你的目标是什么设备?我的目标是一个单独的嵌入式Python区域。它包含并仅由父进程运行。-python版本设置python版本。安装一个32位的模块,需要一个32位的Pip。你试过了吗?尝试安装一些复杂的二进制扩展:numpy、scipy、pandas。尝试使用Python2.7创建一个virtualenv并安装pandas for Python3.7。我没有使用Python2 Pip,但任何Python3 Pip似乎都可以工作,只要目标Python的位宽度相同(32或64)。“兼容”是指相同的位宽吗?Pip似乎有自己的版本号。所谓“兼容”,我指的是相同的平台、相同的操作系统、相同的Python版本。Bitness在这里是最不有趣的。嵌入式Python安装似乎没有脚本目录,因此没有Pip,甚至没有放置它的位置。(也许我有点困惑。)