精华内容
下载资源
问答
  • packages
    千次阅读
    2021-11-18 15:06:15

    简介

    java中使用jar包来封装有用的功能,然后将其分发到maven仓库中,供其他人使用。同样的在dart中也有类似的概念叫做packages。packages就是可以用来共享的软件包,可以包含libraries和tools。

    你可以在pub.dev网站中查到dart中所有的共享packages的信息。 那么怎么在一个dart项目中使用这些packages呢?

    pubspec.yaml

    简单点讲,一个dart的package就是包含pubspec.yaml的目录。pubspec.yaml是一个描述文件,用来表明该package的元信息,包括当前package的名字,版本号和依赖信息等。

    要想使用pub.dev上的packages,只需要在pubspec.yaml引入对应的依赖即可。

    我们举个例子:

    name: app2
    description: a demo app
    version: 1.0.0+1
    
    environment:
      sdk: ">=2.7.0 <3.0.0"
    
    dependencies:
      image_picker: ^0.6.7+22
      video_player: ^0.10.12+5
    

    这里我们的引入了两个依赖包,分别是image_picker和video_player。

    get packages

    当我们修改了pubspec.yaml之后,其实对应的package并没有下载到本地来,还需要通过下面的命令来下载对应的packages:

     cd <path-to-my_app>
     dart pub get
    

    dart pub get会根据pubspec.yaml中配置的内容下载对应的包,并放置在系统缓存中。

    在Mac或者Linux系统中,这个缓存目录的地址是:~/.pub-cache,在windows中这个目录地址是:%LOCALAPPDATA%\Pub\Cache。

    当然,你也可以通过设置PUB_CACHE来更换这个地址。

    如果你依赖的包又依赖其他的包的话,其他依赖包也会被下载下来。

    当下载完依赖包之后,dart会在 .dart_tool/目录中创建一个 package_config.json文件,用来表示当前项目和系统缓存包的映射关系。

    使用packages

    万事俱备,只欠东风。现在包也有了,剩下就是使用了。

    使用libary可以用关键字import。如果是dart SDK中的包,则以dart:开头:

     import 'dart:html';
    
    

    如果是第三方包,则以package: 开头:

    import 'package:test/test.dart';
    

    引入的libary还可以被重命名:

    import 'package:lib1/lib1.dart';
    import 'package:lib2/lib2.dart' as lib2;
    
    // Uses Element from lib1.
    Element element1 = Element();
    
    // Uses Element from lib2.
    lib2.Element element2 = lib2.Element();
    

    还可以使用show和hide引入部分library:

    // Import only foo.
    import 'package:lib1/lib1.dart' show foo;
    
    // Import all names EXCEPT foo.
    import 'package:lib2/lib2.dart' hide foo;
    

    默认情况下,引入的包是初始加载的,如果某些包特别大,或者你想要在使用的时候再进行加载,则可以使用deferred关键字进行延时加载:

    import 'package:greetings/hello.dart' deferred as hello;
    

    在使用的时候,需要显示调用loadLibrary() 方法,来加载对应的library:

    Future<void> greet() async {
      await hello.loadLibrary();
      hello.printGreeting();
    }
    

    升级依赖

    在第一次运行dart pub get 之后,dart会创建一个pubspec.lock文件,用来锁定依赖包的版本号,如果是在团队协作中,这个lock文件是特别有用的,它可以保证团队中所有成员使用的都是同一个版本的依赖包。

    当你想升级对应的依赖的时候,可以使用dart pub upgrade命令,对依赖包进行升级。

    dart pub upgrade会根据最新的可用包来生成最新的lock文件。

    当然,你也可以指定升级某个特定的依赖包:

    dart pub upgrade image_picker
    

    要想查看最新依赖包的最新版本,可以使用:

    dart pub outdated
    

    总结

    以上就是dart中packages的使用。

    本文已收录于 http://www.flydean.com/09-dart-packages/

    最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

    欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

    更多相关内容
  • 更改包装 获取有关具有更改的软件包以及发行计划中包含的软件包的信息。 关于 此操作与版本控制工具一起使用,可让您根据软件包是否已更改或发行计划中是否... uses : caffco/changed-packages-github-action@v1.0.0
  • PackagesNotFoundError: The following packages are not available from current channels: 原因是因为我将安装源设置为清华镜像,而在2019年4月份anaconda的清华镜像不能用了:    所以我们需要手动下载whl文件...
  • 一个软件包,用于通过点文件存储库管理软件包,例如,通过将已安装的软件包列表同步到~/.atom/packages.cson 。 它会自动创建并安装~/.atom/packages.cson所有软件包,并~/.atom/packages.cson文件中的更改。 ...
  • robodo:include-local-packages 在您的meteor 应用程序packages中包含私有包,以便轻松部署到 scalingo。 这是一个 debugOnly 包,它不会编译为生产代码。 安装 meteor add robodo:include-local-packages 将 ...
  • Packages.dmg pkg打包工具

    2018-06-04 09:24:08
    macOS 平台 pkg 打包工具
  • NugetPackages下载地址

    2018-10-18 14:45:36
    实际操作中用到的NugetPackages 网盘链接
  • npm install --save global-packages 之后,加载它: const globalPackages = require ( 'global-packages' ) let packages try { packages = await globalPackages ( ) } catch ( err ) { console . error ( ...
  • Visual C++ Redistributable Packages for Visual Studio 2013包含 (x64,x86两个)vcredist_x64.exe和vcredist_x86.exe
  • openwrt-packages_action

    2021-04-19 20:54:46
    openwrt-packages国内常用OpenWrt软件包源码合集,每天自动更新,使用lean源码openwrt-18.06lean源码请使用packages分支使用方式(三选一):还是建议按需取用,不然碰到依赖问题不太好解决先cd进package目录,然后...
  • Windows Anaconda python3.6 安装依赖包发生错误如下 ...ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: 'D:\\1Atemp\\pip-unpack-dt9854cd\\certifi-2020.

     Windows Anaconda python3.6 安装依赖包发生错误如下

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt --user
    ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: 'D:\\1Atemp\\pip-unpack-dt9854cd\\certifi-2020.6.20-py2.py3-none-any.whl'
    Check the permissions.

    ps1:此前已在命令后添加--user,依然报错

    ps2:此前已用管理员运行anaconda,依然报错

    解决方法:修改对应文件夹权限(D:\\1Atemp\\)

    step1:找到对应文件夹(D:\\1Atemp\\)右键→属性→安全→高级→更改→在输入对象名称框内填写Administrators→确定→替换子容器和对象的所有者

    step2:找到对应文件夹(D:\\1Atemp\\)右键→属性→安全→高级→添加→在输入对象名称框内填写Users→添加“Users”的“完全控制”权限→勾选“使用可从此对象继承的权限替换所有子对象的权限”→确定

    成功安装如下

    (D:\Anaconda3) D:\Anaconda3>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt --user
    Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
    Collecting certifi==2020.6.20
      Downloading https://pypi.tuna.tsinghua.edu.cn/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
         |██████████▌                     | 51 kB 544 kB/s eta 0:00:01     |████████████▌                   | 61 kB 653 kB/s eta 0:00:     |██████████████▌                 | 71 kB 762 kB/s eta 0:0     |█████████████████               | 81 kB 871 kB/s eta 0     |███████████████████             | 92 kB 980 kB/s eta     |█████████████████████           | 102 kB 1.1 MB/s      |███████████████████████         | 112 kB 1.1 MB/     |█████████████████████████       | 122 kB 1.1 M     |███████████████████████████     | 133 kB 1.1     |█████████████████████████████   | 143 kB 1     |███████████████████████████████▌| 153 k     |████████████████████████████████| 156 kB 1.1 MB/s
    Requirement already satisfied: wincertstore==0.2 in d:\anaconda3\lib\site-packages (from -r requirements.txt (line 2)) (0.2)
    Installing collected packages: certifi
    Successfully installed certifi-2020.6.20

    具体报错如下

    (D:\Anaconda3) D:\Anaconda3>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt --user
    Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
    Collecting certifi==2020.6.20
      Downloading https://pypi.tuna.tsinghua.edu.cn/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
    ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: 'D:\\1Atemp\\pip-unpack-dt9854cd\\certifi-2020.6.20-py2.py3-none-any.whl'
    Check the permissions.
    
    Traceback (most recent call last):
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 34, in global_tempdir_manager
        yield
      File "d:\anaconda3\lib\contextlib.py", line 365, in __exit__
        if cb(*exc_details):
      File "d:\anaconda3\lib\contextlib.py", line 284, in _exit_wrapper
        return cm_exit(cm, *exc_details)
      File "d:\anaconda3\lib\contextlib.py", line 88, in __exit__
        next(self.gen)
      File "d:\anaconda3\lib\site-packages\pip\_internal\req\req_tracker.py", line 51, in get_requirement_tracker
        yield tracker
      File "d:\anaconda3\lib\contextlib.py", line 380, in __exit__
        raise exc_details[1]
      File "d:\anaconda3\lib\contextlib.py", line 365, in __exit__
        if cb(*exc_details):
      File "d:\anaconda3\lib\contextlib.py", line 284, in _exit_wrapper
        return cm_exit(cm, *exc_details)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 156, in __exit__
        self.cleanup()
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 173, in cleanup
        rmtree(self._path)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 326, in wrapped_f
        return self(f, *args, **kw)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 406, in __call__
        do = self.iter(retry_state=retry_state)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 362, in iter
        raise retry_exc.reraise()
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 195, in reraise
        raise self.last_attempt.result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 425, in result
        return self.__get_result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 384, in __get_result
        raise self._exception
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 409, in __call__
        result = fn(*args, **kwargs)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\misc.py", line 126, in rmtree
        shutil.rmtree(dir, ignore_errors=ignore_errors, onerror=rmtree_errorhandler)
      File "d:\anaconda3\lib\shutil.py", line 494, in rmtree
        return _rmtree_unsafe(path, onerror)
      File "d:\anaconda3\lib\shutil.py", line 376, in _rmtree_unsafe
        onerror(os.listdir, path, sys.exc_info())
      File "d:\anaconda3\lib\shutil.py", line 374, in _rmtree_unsafe
        names = os.listdir(path)
    PermissionError: [WinError 5] 拒绝访问。: 'D:\\1Atemp\\pip-req-tracker-m_yt1iwu'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "d:\anaconda3\lib\contextlib.py", line 365, in __exit__
        if cb(*exc_details):
      File "d:\anaconda3\lib\contextlib.py", line 284, in _exit_wrapper
        return cm_exit(cm, *exc_details)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 156, in __exit__
        self.cleanup()
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 173, in cleanup
        rmtree(self._path)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 326, in wrapped_f
        return self(f, *args, **kw)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 406, in __call__
        do = self.iter(retry_state=retry_state)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 362, in iter
        raise retry_exc.reraise()
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 195, in reraise
        raise self.last_attempt.result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 425, in result
        return self.__get_result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 384, in __get_result
        raise self._exception
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 409, in __call__
        result = fn(*args, **kwargs)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\misc.py", line 126, in rmtree
        shutil.rmtree(dir, ignore_errors=ignore_errors, onerror=rmtree_errorhandler)
      File "d:\anaconda3\lib\shutil.py", line 494, in rmtree
        return _rmtree_unsafe(path, onerror)
      File "d:\anaconda3\lib\shutil.py", line 376, in _rmtree_unsafe
        onerror(os.listdir, path, sys.exc_info())
      File "d:\anaconda3\lib\shutil.py", line 374, in _rmtree_unsafe
        names = os.listdir(path)
    PermissionError: [WinError 5] 拒绝访问。: 'D:\\1Atemp\\pip-unpack-dt9854cd'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "d:\anaconda3\lib\contextlib.py", line 365, in __exit__
        if cb(*exc_details):
      File "d:\anaconda3\lib\contextlib.py", line 284, in _exit_wrapper
        return cm_exit(cm, *exc_details)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 156, in __exit__
        self.cleanup()
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 173, in cleanup
        rmtree(self._path)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 326, in wrapped_f
        return self(f, *args, **kw)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 406, in __call__
        do = self.iter(retry_state=retry_state)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 362, in iter
        raise retry_exc.reraise()
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 195, in reraise
        raise self.last_attempt.result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 425, in result
        return self.__get_result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 384, in __get_result
        raise self._exception
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 409, in __call__
        result = fn(*args, **kwargs)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\misc.py", line 126, in rmtree
        shutil.rmtree(dir, ignore_errors=ignore_errors, onerror=rmtree_errorhandler)
      File "d:\anaconda3\lib\shutil.py", line 494, in rmtree
        return _rmtree_unsafe(path, onerror)
      File "d:\anaconda3\lib\shutil.py", line 376, in _rmtree_unsafe
        onerror(os.listdir, path, sys.exc_info())
      File "d:\anaconda3\lib\shutil.py", line 374, in _rmtree_unsafe
        names = os.listdir(path)
    PermissionError: [WinError 5] 拒绝访问。: 'D:\\1Atemp\\pip-install-40w0qb34'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "d:\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
      File "d:\anaconda3\lib\runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "D:\Anaconda3\Scripts\pip.exe\__main__.py", line 9, in <module>
      File "d:\anaconda3\lib\site-packages\pip\_internal\cli\main.py", line 70, in main
        return command.main(cmd_args)
      File "d:\anaconda3\lib\site-packages\pip\_internal\cli\base_command.py", line 98, in main
        return self._main(args)
      File "d:\anaconda3\lib\contextlib.py", line 88, in __exit__
        next(self.gen)
      File "d:\anaconda3\lib\site-packages\pip\_internal\cli\command_context.py", line 20, in main_context
        yield
      File "d:\anaconda3\lib\contextlib.py", line 380, in __exit__
        raise exc_details[1]
      File "d:\anaconda3\lib\contextlib.py", line 99, in __exit__
        self.gen.throw(type, value, traceback)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 70, in tempdir_registry
        yield _tempdir_registry
      File "d:\anaconda3\lib\contextlib.py", line 365, in __exit__
        if cb(*exc_details):
      File "d:\anaconda3\lib\contextlib.py", line 284, in _exit_wrapper
        return cm_exit(cm, *exc_details)
      File "d:\anaconda3\lib\contextlib.py", line 99, in __exit__
        self.gen.throw(type, value, traceback)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 36, in global_tempdir_manager
        _tempdir_manager = old_tempdir_manager
      File "d:\anaconda3\lib\contextlib.py", line 380, in __exit__
        raise exc_details[1]
      File "d:\anaconda3\lib\contextlib.py", line 365, in __exit__
        if cb(*exc_details):
      File "d:\anaconda3\lib\contextlib.py", line 284, in _exit_wrapper
        return cm_exit(cm, *exc_details)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 156, in __exit__
        self.cleanup()
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\temp_dir.py", line 173, in cleanup
        rmtree(self._path)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 326, in wrapped_f
        return self(f, *args, **kw)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 406, in __call__
        do = self.iter(retry_state=retry_state)
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 362, in iter
        raise retry_exc.reraise()
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 195, in reraise
        raise self.last_attempt.result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 425, in result
        return self.__get_result()
      File "d:\anaconda3\lib\concurrent\futures\_base.py", line 384, in __get_result
        raise self._exception
      File "d:\anaconda3\lib\site-packages\pip\_vendor\tenacity\__init__.py", line 409, in __call__
        result = fn(*args, **kwargs)
      File "d:\anaconda3\lib\site-packages\pip\_internal\utils\misc.py", line 126, in rmtree
        shutil.rmtree(dir, ignore_errors=ignore_errors, onerror=rmtree_errorhandler)
      File "d:\anaconda3\lib\shutil.py", line 494, in rmtree
        return _rmtree_unsafe(path, onerror)
      File "d:\anaconda3\lib\shutil.py", line 376, in _rmtree_unsafe
        onerror(os.listdir, path, sys.exc_info())
      File "d:\anaconda3\lib\shutil.py", line 374, in _rmtree_unsafe
        names = os.listdir(path)
    PermissionError: [WinError 5] 拒绝访问。: 'D:\\1Atemp\\pip-ephem-wheel-cache-90todcuy'

    参考:无法枚举容器内对象 访问被拒绝? - 知乎

    展开全文
  • WIndows下使用caffe深度学习框架,编译caffe时会让下载一个接近一个G的NugetPackages依赖包,速度十分慢,而且会出现失败的情况,在此分享我用VS2013编译caffe时下载好的NugetPackages依赖包(温馨提示:caffe编译...
  • CentOS 6.0以后,这些rpm都是在光盘目录下的Packages目录下,6.0以前好像是在Server文件夹下
  • gh-packages会自动使用您的项目副本创建一个新的分支gh-packages ,并将其发布在NPM上。 您可以使用-c或--command标志在发布软件包之前执行定制命令: gh-packages -c "<custom>" 安装 npm i -g gh-packages ...
  • Visual C++ Redistributable Packages for Visual Studio 2013(64bit)

    千次下载 热门讨论 2014-11-06 13:57:31
    Visual C++ Redistributable Packages for Visual Studio 2013
  • Python site-packages目录的位置

    千次阅读 2022-05-13 20:44:28
    1、运行时会列出全局站点软件包(“dist-packages”)目录sys.path: python -m site USER_BASE 和USER_SITE其实就是用户自定义的启用Python脚本和依赖安装包的基础路径。 user_site其实就是个人的site-...

    网站包目录有两种类型,全局目录和每个用户目录。

    1、运行时会列出全局站点软件包(“ dist-packages”)目录sys.path

    python -m site

     

     USER_BASE 和USER_SITE其实就是用户自定义的启用Python脚本和依赖安装包的基础路径。
    user_site其实就是个人的site-packages默认安装路径了

    要在Python代码中getsitepackages从站点模块运行更简洁的列表,请执行以下操作:

    python -c 'import site; print(site.getsitepackages())'

     注意:使用virtualenvs时,getsitepackages不可用
    ,但是sys.path从上面将正确列出virtualenv的site-packages目录。在Python 3中,您可以改为使用sysconfig模块

    python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])'

    2、在每个用户站点包目录是其中的Python安装本地套餐:

    python -m site --user-site

    如果这指向一个不存在的目录,请检查Python的退出状态并查看python -m site --help说明。

    提示:运行pip list --userpip freeze --user为您提供每个用户站点软件包的所有已安装列表。

    pip install指定安装目录

    pip install一般会有默认的安装目录,可以通过python -m site进行查看,当然也可以对默认目录进行修改通过pip install --target=path_name package_name

    展开全文
  • 安装 - 如何找到Python site-packages目录的位置?如何找到site-packages目录的位置?18个解决方案618 votes>>> import site; site.getsitepackages()['/usr/local/lib/python2.7/dist-packages', '/usr/...

    安装 - 如何找到Python site-packages目录的位置?

    如何找到site-packages目录的位置?

    18个解决方案

    618 votes

    >>> import site; site.getsitepackages()

    ['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

    (或只是site.getsitepackages()[0]的第一项)

    eudoxos answered 2018-12-27T03:42:25Z

    298 votes

    从“如何安装Django”文档(虽然这不仅仅是Django安装有用) - 从shell执行以下命令:

    python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"

    格式化为可读性(而不是用作单行),如下所示:

    from distutils.sysconfig import get_python_lib

    print(get_python_lib())

    Daryl Spitzer answered 2018-12-27T03:42:53Z

    202 votes

    有两种类型的站点包目录,全局和每用户。

    运行时,全局站点包(“dist-packages”)目录列在pip list --user中:

    pip list --user

    有关更简洁的列表,请从Python代码中的站点模块运行pip list --user:

    pip list --user

    注意:由于virtualenvs的getitepackages不可用,但上面的pip list --user将正确列出virtualenv的site-packages目录。

    每个用户的站点包目录(PEP 370)是Python安装本地包的地方:

    pip list --user

    如果这指向不存在的目录,请检查Python的退出状态,并参阅pip list --user以获取解释。

    提示:运行pip list --user或pip freeze --user会为您提供所有已安装的每个用户站点包的列表。

    Peterino answered 2018-12-27T03:42:03Z

    97 votes

    对于Ubuntu,

    python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

    ...是不正确的。

    它会指向/usr/local/lib/pythonX.X/dist-packages

    此文件夹仅包含操作系统自动安装的程序包以供程序运行。

    在ubuntu上,包含通过setup_tools \ easy_install \ pip安装的软件包的site-packages文件夹将在/usr/local/lib/pythonX.X/dist-packages

    如果用例与安装或读取源代码相关,则第二个文件夹可能更有用。

    如果您不使用Ubuntu,您可能会安全地将第一个代码框复制粘贴到终端中。

    David Hollander answered 2018-12-27T03:43:52Z

    63 votes

    这对我有用:

    python -m site --user-site

    Ramashri answered 2018-12-27T03:44:13Z

    22 votes

    假设你已经安装了'django'软件包。 导入它并输入dir(django)。 它将向您展示该模块的所有功能和属性。 输入python解释器 -

    >>> import django

    >>> dir(django)

    ['VERSION', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'get_version']

    >>> print django.__path__

    ['/Library/Python/2.6/site-packages/django']

    如果你安装了mercurial,你可以做同样的事情。

    这是雪豹。 但我认为它也应该起作用。

    Sumod answered 2018-12-27T03:44:47Z

    21 votes

    正如其他人所说,site-packages具有相关设置:

    import distutils.sysconfig

    print distutils.sysconfig.get_python_lib()

    ...虽然默认的site-packages做了一些更粗糙的事情,在下面解释:

    import sys, os

    print os.sep.join([sys.prefix, 'lib', 'python' + sys.version[:3], 'site-packages'])

    (它还添加了site-packages并为sys.exec_prefix添加了两个路径,如果常量不同的话)。

    那就是说,背景是什么? 你不应该直接搞乱你的site-packages; setuptools / distutils将用于安装,并且您的程序可能在virtualenv中运行,其中您的pythonpath完全是用户本地的,因此它不应该直接使用系统站点包。

    Charles Duffy answered 2018-12-27T03:45:28Z

    15 votes

    在基于Debian的系统中安装python安装的本机系统包可以在以下位置找到:

    /usr/lib/python2.7/dist-packages/

    在OSX中 - pip

    通过使用这个小代码:

    from distutils.sysconfig import get_python_lib

    print get_python_lib()

    但是,可以在以下位置找到通过pip安装的软件包列表:

    在/ usr/ local / bin目录/

    或者可以简单地编写以下命令来列出python包所在的所有路径。

    >>> import site; site.getsitepackages()

    ['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

    注意:位置可能会因您的操作系统而异,例如在OSX中

    >>> import site; site.getsitepackages()

    ['/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python', '/Library/Python/2.7/site-packages']

    fnatic_shank answered 2018-12-27T03:46:33Z

    13 votes

    所有答案(或:反复重复的相同答案)都不充分。 你想要做的是:

    from setuptools.command.easy_install import easy_install

    class easy_install_default(easy_install):

    """ class easy_install had problems with the fist parameter not being

    an instance of Distribution, even though it was. This is due to

    some import-related mess.

    """

    def __init__(self):

    from distutils.dist import Distribution

    dist = Distribution()

    self.distribution = dist

    self.initialize_options()

    self._dry_run = None

    self.verbose = dist.verbose

    self.force = None

    self.help = 0

    self.finalized = 0

    e = easy_install_default()

    import distutils.errors

    try:

    e.finalize_options()

    except distutils.errors.DistutilsError:

    pass

    print e.install_dir

    最后一行显示安装目录。 适用于Ubuntu,而上述则不适用。 不要问我关于windows或其他dists的问题,但是因为它与easy_install默认使用的dir完全相同,所以在easy_install工作的地方(因此,无处不在,甚至是mac)都可能是正确的。 玩得开心。 注意:原始代码中有许多脏话。

    cheater answered 2018-12-27T03:47:01Z

    11 votes

    附注:当存在多个site-packages目录时(根据本文的建议),建议的解决方案(distutils.sysconfig.get_python_lib())不起作用。 它只返回主要的site-packages目录。

    唉,我也没有更好的解决方案。 Python似乎没有跟踪site-packages目录,只跟踪它们中的包。

    Vladimir Vagaytsev answered 2018-12-27T03:47:29Z

    9 votes

    这对我有用。它将为您提供dist-packages和site-packages文件夹。如果文件夹不在Python的路径上,则不会无论如何,你做得很好。

    import sys;

    print [f for f in sys.path if f.endswith('packages')]

    输出(Ubuntu安装):

    ['/home/username/.local/lib/python2.7/site-packages',

    '/usr/local/lib/python2.7/dist-packages',

    '/usr/lib/python2.7/dist-packages']

    just_an_old_guy answered 2018-12-27T03:47:57Z

    8 votes

    已经提到get_python_lib函数的附加说明:在某些平台上,不同的目录用于特定于平台的模块(例如:需要编译的模块)。 如果您将plat_specific=True传递给该函数,则会获得特定于平台的软件包的站点软件包。

    Armin Ronacher answered 2018-12-27T03:48:19Z

    7 votes

    from distutils.sysconfig import get_python_lib

    print get_python_lib()

    Florian Bösch answered 2018-12-27T03:48:35Z

    7 votes

    这应该适用于虚拟环境中的所有分布,因为它具有“低技术”性质。 os模块总是驻留在'site-packages'的父目录中

    import os; print(os.path.dirname(os.__file__) + '/site-packages')

    要将dir更改为site-packages目录,我使用以下别名(在* nix系统上):

    alias cdsp='cd $(python -c "import os; print(os.path.dirname(os.__file__))"); cd site-packages'

    Pyramid Newbie answered 2018-12-27T03:49:03Z

    2 votes

    回答旧问题。 但是为此使用ipython。

    pip install ipython

    ipython

    import imaplib

    imaplib?

    这将给出关于imaplib包的以下输出 -

    Type: module

    String form:

    File: /usr/lib/python2.7/imaplib.py

    Docstring:

    IMAP4 client.

    Based on RFC 2060.

    Public class: IMAP4

    Public variable: Debug

    Public functions: Internaldate2tuple

    Int2AP

    ParseFlags

    Time2Internaldate

    Sahil Agarwal answered 2018-12-27T03:49:32Z

    2 votes

    现代stdlib方式使用sysconfig模块,可在2.7和3.2+版本中使用。 Python目前使用八个路径(docs):

    stdlib:包含非特定于平台的标准Python库文件的目录。

    platstdlib:包含特定于平台的标准Python库文件的目录。

    platlib:特定于站点的平台特定文件的目录。

    purelib:特定于站点的非平台特定文件的目录。

    include:非平台特定头文件的目录。

    platinclude:特定于平台的头文件的目录。

    scripts:脚本文件的目录。

    data:数据文件的目录。

    在大多数情况下,发现此问题的用户会对'purelib'路径感兴趣(在某些情况下,您可能也对'platlib'感兴趣)。 与目前接受的答案不同,这种方法不应该是错误的,这取决于你是否激活了virtualenv。

    在系统级(这是mac OS上的Python 3.7.0):

    >>> import sysconfig

    >>> sysconfig.get_paths()['purelib']

    '/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages'

    有了一个venv,你会得到这样的东西

    >>> import sysconfig

    >>> sysconfig.get_paths()['purelib']

    '/private/tmp/.venv/lib/python3.7/site-packages'

    shell脚本也可用于显示这些详细信息,您可以通过执行sysconfig作为模块来调用:

    python -m sysconfig

    注意:sysconfig(源代码)不要与这里的其他几个答案中提到的distutils.sysconfig子模块(源)相混淆。 这是一个完全不同的模块,它缺少上面讨论的get_paths功能。

    wim answered 2018-12-27T03:51:18Z

    0 votes

    对于我正在处理的项目,我必须做一些稍微不同的事情:找到相对于基本安装前缀的相对site-packages目录。 如果site-packages文件夹在/Lib/site-packages中,我想要/lib/python3.6/site-packages部分。 事实上,我遇到site-packages在/usr/lib64中的系统,并且接受的答案对这些系统不起作用。

    与骗子的答案类似,我的解决方案深入探究了Distutils的内涵,找到了实际在/Lib/site-packages内部传递的路径。想到我不希望任何人再次想到这一点,真是太痛苦了。。

    import sys

    import os

    from distutils.command.install import INSTALL_SCHEMES

    if os.name == 'nt':

    scheme_key = 'nt'

    else:

    scheme_key = 'unix_prefix'

    print(INSTALL_SCHEMES[scheme_key]['purelib'].replace('$py_version_short', (str.split(sys.version))[0][0:3]).replace('$base', ''))

    这应该打印像/Lib/site-packages或/lib/python3.6/site-packages。

    MultipleMonomials answered 2018-12-27T03:51:53Z

    0 votes

    如果已经添加到PYTHONPATH,您也可以执行类似的操作

    import sys

    print('\n'.join(sys.path))

    filtfilt answered 2018-12-27T03:52:15Z

    展开全文
  • unity Resolving Packages卡主

    千次阅读 2022-03-13 16:02:16
    打开别人的项目经常会遇到 Resolving Packages卡主。 这有可能是你用的 Unity 版本,与项目的Unity 版本不一致导致的,导致 package 版本不一致。 下载不到 package. 解决 打开Unity/Packages目录的 manifest.json ...
  • vue2 卸载 uninstall vue-meta 报错 up to date, audited 1389 packages in 10s 96 packages are looking for
  • 适用于 Sublime 和 Atom 的 Javatar 插件的 Javatar Packages 存储库 创建您自己的 Javatar 包 克隆或下载 JavatarDoclet 存储库 编译所有 JavatarDoclet 源代码 修改makefile以适合您的包 使用当前目录中的源代码...
  • 在执行Anaconda命令的时候遇到The following packages are causing the inconsistency: (base) liuchang@PauldeMacBook-Pro  ~  conda install anaconda Collecting package metadata (current_repodata....
  • 在网上找了很多方法都没啥用,亲测有效 解决方案如下: dnf install qt5-qtwebkit-devel.x86_64 --nogpgcheck yum -y install mysql-community-server 一切OK
  • Unity的packages管理机制

    千次阅读 2022-01-28 10:10:07
    Unity新安装的packages保存目录 C:\ProgramData\Unity\cache\packages\packages.unity.com 内置的packages保存目录 为版本安装目录\Editor\Data\Resources\PackageManager\BuiltInPackages C:\Program Files\Unity...
  • db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db5 - (-30973) error: cannot open Packages database in /var/...
  • Error in install.packages : Updating loaded packages WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools ...
  • ros使用python3编译cv_bridge、tf等packages

    千次阅读 2020-05-13 12:25:25
    packages') # sys.path.remove('/home/s/ros_study/devel/lib/python2.7/dist-packages') # print(sys.path) # sys.path.append('/opt/ros/kinetic/lib/python2.7/dist-packages') # print(sys.path) import tf ...
  • packages unavailable无法查看源码

    千次阅读 2022-01-30 22:47:24
    packages unavailable无法查看源码 打开sdk manager 将show Package details 勾选 找到对应sdk 将source for android 勾选 然后确定后会下载资源 下载完成后,就可以看见源码了 不会是 throw exception语句了 注意 ...
  • The following packages have unmet dependencies

    千次阅读 2021-11-10 11:02:28
    执行安装软件包命令sudo apt-get install packagename时,提示:The following packages have unmet dependencies The following packages have unmet dependencies,看起来是依赖项的问题,网上的处理方法...
  • Defaulting to user installation because normal site-packages is not writeable Requirement already satisfied: pytest in /Users/fanyan/Library/Python/2.7/lib/python/site-packages (4.6.11) ...
  • Python之模块增加到site-packages

    千次阅读 2022-01-03 14:44:32
    你的解释器的site-packages位置 这些目录包含你可能已经安装的第三方python模块(也包括你自己写的模块) 标准库位置 这些目录包含构成标准库的所有模块 当解释器无法在当前工作目录中找到你的模块,它会查找site-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 628,552
精华内容 251,420
关键字:

packages