0

我正在完成为 Linux 系统编写的 Pyramid 快速教程,并且我使用的是 Windows,因此我将每个命令转换为 Windows 等效命令。

在教程步骤:使用 Cookiecutter 快速启动项目中,我遇到了以下问题:

教程中写的命令: ie for linux

$VENV/bin/pip install cookiecutter

我在 Windows 中所做的事情:

我通过以下方式激活虚拟环境:

c:\projects\quick_tutorial\env\Scripts\Activate

然后我使用 Windows 命令:

(env) c:\projects\quick_tutorial\env\Scripts\pip install cookiecutter

同样,然后我运行以下命令:

(env) c:\projects\quick_tutorial\env\Scripts\cookiecutter https://github.com/Pylons/pyramid-cookiecutter-starter

上面的命令在我的“...env\Scripts”文件夹中放置了一个新文件夹:cc_starter 。我认为这没有意义,所以我将cc_starter移到c:\projects\quick_tutorial.

此时我的目录看起来像:My Director,其中: (1) 不包含“bin”文件夹;(2) 在“env”文件夹中没有“cc_starter”文件夹。<-- 我认为这是 Linux 和 Windows 之间的虚拟环境项目的结构应该不同的两个主要区别

问题:

本教程步骤的最后一部分是运行:

$ env/bin/pserve development.ini --reload

^^ 适用于 Linux

我的 Windows 等效项:

(env) c:\projects\quick_tutorial\cc_starter\pserve development.ini --reload

不幸的是,这会返回以下 Traceback(最近一次调用最后一次):

文件“C:\Python34\lib\runpy.py”,第 170 行,在 _run_module_as_main
main ”,mod_spec) 文件“C:\Python34\lib\runpy.py”,第 85 行,在 _run_code exec(code, run_globals)文件“c:\projects\quick_tutorial\env\Scripts\pserve.exe__main__.py”,第 9 行,在文件
“C:\Python34\Lib\site-packages\pyramid\scripts\pserve.py”,第 60 行,
在主要返回 command.run() 文件“C:\Python34\Lib\site-packages\pyramid\scripts\pserve.py”,第 371 行,
运行中 global_conf=vars) 文件“C:\Python34\Lib\site-packages \pyramid\scripts\pserve.py”,第 406 行,
在 loadapp 返回 loadapp(app_spec, name=name, relative_to=relative_to, **kw) 文件“C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 247 行,
在 loadapp 返回 loadobj(APP, uri, name=name, **kw) 文件“C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 271 行,
在 loadobj global_conf=global_conf) 文件中“ C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 296 行,
在 loadcontext global_conf=global_conf) 文件“C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py” ,第 320 行,
在 _loadconfig 返回 loader.get_context(object_type, name, global_conf) 文件“C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 454 行,
在 get_context 部分)文件“C: \Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 476 行,
在 _context_from_use object_type, name=use, global_conf=global_conf) 文件“C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 406 行,
在 get_context global_conf=global_conf) 文件“C:\Python34\ Lib\site-packages\paste\deploy\loadwsgi.py”,第 296 行,
在 loadcontext global_conf=global_conf) 文件“C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 328 行,
在_loadegg return loader.get_context(object_type, name, global_conf) File "C:\Python34\Lib\site-packages\paste\deploy\loadwsgi.py", line 620,
in get_context object_type, name=name) File "C:\ Python34\Lib\site-packages\paste\deploy\loadwsgi.py”,第 640 行,
在 find_egg_entry_point pkg_resources.require(self.spec) 文件“C:\Python34\Lib\site-packages\pkg_resources.py”中,第 669 行,
需要 = self.resolve(parse_requirements(requirements))
文件“C:\Python34 \Lib\site-packages\pkg_resources.py",第 572 行,在
解决中提高 DistributionNotFound(req) pkg_resources.DistributionNotFound: cc-starter

(对不起,文本块,它是直接从命令提示符复制出来的)

问题:

  1. 我是否需要像我所做的那样在 Scripts 文件夹中运行“激活”命令?
  2. env\Scripts文件夹相当于env\binLinux中的吗?
  3. 我是否打算将“cc_starter 文件夹”移出quick_tutorial\env\Scripts并放入\quick_tutorial?(正如我所做的那样)
  4. 加载时我需要做些什么来避免错误development.ini
4

2 回答 2

0

首先有一个用于在 Windows 10 上安装 cookiecutter 的 PR,它已经过测试(由我在 VM 中测试)。请参阅https://github.com/stevepiercy/cookiecutter/blob/99250649aa3f4ba77091a72fe5df42d7f59859e6/docs/installation.rst并 ping cookiecutter 的维护者以合并 PR https://github.com/audreyr/cookiecutter/pull/887

  1. 我们不推荐activate。请参阅http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/install.html#venv-bin-pip-vs-source-bin-activate

    而是使用设置为 Path 的环境变量或使用可执行文件的完整路径调用命令。请参阅http://docs.pylonsproject.org/projects/pyramid/en/latest/quick_tutorial/requirements.html

  2. 足够接近。对于 Linux,替换/\.
  3. 在此步骤中,您不应移动任何文件夹或文件。
  4. 请参阅前面的项目。stacktrace 中的最后一行表示cc-starter找不到包,可能是因为您重新定位了它,或者您跳入了activate,或者两者兼而有之。
于 2017-02-07T13:42:13.770 回答
0

发现问题了!在教程:使用 Cookiecutters 的快速项目启动中,不清楚我必须自己完成以下命令:

# Change directory into your newly created project.
$ cd cc_starter
# Create a new virtual environment...
$ python3 -m venv env
# ...where we upgrade packaging tools...
$ env/bin/pip install --upgrade pip setuptools
# ...and into which we install our project.
$ env/bin/pip install -e .

运行这些命令后,我能够成功完成教程。谢谢你,史蒂夫皮尔西的帮助。

于 2017-02-07T23:49:44.770 回答