首页 > 解决方案 > pipenv shell 与 pipenv 运行(带脚本)

问题描述

在遵循tds 的本教程时,我决定通过 pipenv 来完成,因为我在 macos 上。我设法完成了大部分工作,但我一直遇到一个错误,表明我不明白 pipenv 如何设置环境。具体来说,它如何运行脚本。即使在 pipenv shell 中,它似乎也恢复到依赖我的系统 python (2.7)。(parse_gpx.py是主要的python文件,2021-0622run.gpx是要分析的gpx格式文件)

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pandas/__init__.py", line 25, in <module>
    from pandas import hashtable, tslib, lib
ImportError: dlopen(/Library/Python/2.7/site-packages/pandas/hashtable.so, 2): Symbol not found: _PyCObject_Type
  Referenced from: /Library/Python/2.7/site-packages/pandas/hashtable.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/pandas/hashtable.so

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "parse_gpx.py", line 5, in <module>
    import pandas as pd
  File "/Library/Python/2.7/site-packages/pandas/__init__.py", line 31, in <module>
    "extensions first.".format(module))
ImportError: C extension: dlopen(/Library/Python/2.7/site-packages/pandas/hashtable.so, 2): Symbol not found: _PyCObject_Type
  Referenced from: /Library/Python/2.7/site-packages/pandas/hashtable.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/pandas/hashtable.so not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first.

我的问题是:为什么“pipenv shell”看起来在系统python中而不是留在自己的“盒子”中?这不是 pipenv 的重点吗?有可能我配置错了吗?我确实在设置它时遇到了一些问题(包括双重安装和其他事情),这就是为什么我不确定这种行为是设计使然,还是我之前安装拙劣的残余。

任何将我指向解释正在发生的事情的文档的帮助将不胜感激!

最后,对不起,如果这是在错误的地方。我试着寻找最好的地方来问这个问题,并检查是否有人以前问过这个问题。

谢谢!

标签: pythonhomebrewpipenv

解决方案


首先,您是否还安装了PyEnv?没有 PyEnv,PipEnv 无法为您安装所需的 Python 版本。

其次,在创建环境时,是否记得指定 Python 版本?要使用最新的 Python 3 版本创建环境,请使用pipenv --three.


推荐阅读